2017-08-16 73 views
2

我正在使用API​​,我必须从json文件提供输入。将数据从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

您可以使用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) 
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\"]