我正在使用API,我必须从json
文件提供输入。
我的json文件看起来像这样
{
"cases":[
{
"case_no":1,
"case_input":"Test 1",
"case_output":"Test 1"
},
{
"case_no":2,
"case_input":"Test 2",
"case_output":"Test 2"
}
]
}
我想从这个json中提取case_input
,需要像这样转换它
$testcases = "[\"Test 1\", \"Test 2\"]";
我怎么能用javascript或php做到这一点?
目前我所做的是通过Ajax导入JSON然后
var testcases = [];
for(var j in data.cases ){
testcases[j]= data.cases[j].case_input;
}
testcase = JSON.stringify(testcases);
答案 0 :(得分:1)
在php中,您可以使用array_column()
来提取这些值。您只需要解码json,然后再对结果进行编码。
$json='{
"cases":[
{
"case_no":1,
"case_input":"Test 1",
"case_output":"Test 1"
},
{
"case_no":2,
"case_input":"Test 2",
"case_output":"Test 2"
}
]
}';
$array=json_decode($json,true);
$case_inputs=array_column($array['cases'],'case_input');
echo json_encode($case_inputs);
// Output: ["Test 1","Test 2"]
或者如果您需要带有转义双引号的文字字符串:
$array=json_decode($json,true);
$case_inputs=array_column($array['cases'],'case_input');
echo '[\"',implode('\", \"',$case_inputs),'\"]';
// output: [\"Test 1\", \"Test 2\"]
答案 1 :(得分:0)
您可以使用Array.map:
var v = {
"cases":[
{
"case_no":1,
"case_input":"Test 1",
"case_output":"Test 1"
},
{
"case_no":2,
"case_input":"Test 2",
"case_output":"Test 2"
}
]
}
var testcases = v.cases.map((i) => i.case_input)