javascript — конвертирует данные из json в заданный формат

Я работаю с 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);

2

Решение

В 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

Другие решения

Вы можете использовать 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)
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector