Я работаю с 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"}
]
}
Я хочу извлечь case_input
из этого JSON и нужно преобразовать его так
$testcases = "[\"Test 1\", \"Test 2\"]";
Как я могу сделать это с помощью JavaScript или PHP?
В настоящее время я импортировал JSON через Ajax.
var testcases = [];
for(var j in data.cases ){
testcases[j]= data.cases[j].case_input;
}
testcase = JSON.stringify(testcases);
В 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\"]
Вы можете использовать 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)