2017-08-16 2 views
2

Ich arbeite mit einer API, wo ich Eingabe von einer json Datei geben muss.konvertieren Daten von JSON in das gegebene Format

meine JSON-Datei sieht wie folgt aus

{ 
    "cases":[ 
    { 
     "case_no":1, 
     "case_input":"Test 1", 
     "case_output":"Test 1" 
    }, 
    { 
     "case_no":2, 
     "case_input":"Test 2", 
     "case_output":"Test 2" 
    } 
     ]  
} 

I case_input von diesem json extrahieren möchten und es wie dieser

$testcases = "[\"Test 1\", \"Test 2\"]"; 

konvertieren Wie kann ich dies mit Javascript oder PHP zu tun?

Derzeit, was ich getan haben, ist Import JSON durch Ajax dann

var testcases = []; 
        for(var j in data.cases){ 
        testcases[j]= data.cases[j].case_input; 
        } 
        testcase = JSON.stringify(testcases); 

Antwort

0

Sie Array.map verwenden können:

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

in PHP geschrieben, Sie array_column() zu extrahieren, diese Werte verwenden können. Sie müssen nur den JSON dekodieren, bevor Sie das Ergebnis kodieren.

$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"] 

Oder wenn Sie die Zeichenkette mit den entkam doppelten Anführungszeichen:

$array=json_decode($json,true); 
$case_inputs=array_column($array['cases'],'case_input'); 
echo '[\"',implode('\", \"',$case_inputs),'\"]'; 
// output: [\"Test 1\", \"Test 2\"] 
Verwandte Themen