2017-08-16 72 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\"]