2016-04-03 11 views
0

Ich habe json Ergebnis Ich habe Code zu analysieren, aber es funktioniert nur auf eindeutigen Schlüssel in meinen Daten gibt es verschiedene Schlüssel für jeden Wert
Bitte helfen Sie mirWie Json Ergebnis in Javascript

{ 
    "images": [ 
    { 
     "time": 2.86091, 
     "transaction": 
     { 
      "status": "Complete", 
      "subject": "test2", 
      "confidence": 0.77, 
      "gallery_name": "gallerytest1", 
     }, 
     "candidates": [ 
     { 
      "subtest1": "0.802138030529022", 
      "enrollment_timestamp": "1416850761" 
     }, 
     { 
      "elizabeth": "0.802138030529022", 
      "enrollment_timestamp": "1417207485" 
     }, 
     { 
      "elizabeth": "0.777253568172455", 
      "enrollment_timestamp": "1416518415" 
     }, 
     { 
      "elizabeth": "0.777253568172455", 
      "enrollment_timestamp": "1416431816" 
     } 
     ] 
    } ] 
} 

Ich mag analysieren alle catidates und seine Werte aus es elizabeth = 0,77777 subtest1 = 0,802138030529022

+0

Es ist eine einfache Art und Weise mit 'json' in' javascript' zu arbeiten, weil es keine Notwendigkeit eines Dritten Bibliothek ist die '' Daten zuzugreifen. von irgendeinem komplexen 'json'. Einfach durch das Array Iterieren. Danke @ user1199396 –

+0

Das ist nicht JSON, und Sie "analysieren es nicht". Es ist ein ** JavaScript-Objekt ** und Sie ** greifen ** darauf zu. Wie auch immer, wenn du sagst * Ich möchte alle catidates und ihre Werte daraus analysieren elizabeth = 0.77777 subtest1 = 0.802138030529022 *, kann ich nicht verstehen. Woher kommt 0.777777? Woher weiß ich, welchen Wert Elizabeth Sie abrufen möchten? Was bedeutet "Untertest1"? –

Antwort

0

JSON ist bereits 'analysiert' für Javascript als JSON bedeutet JavaScript Object Notation. Wenn Ihre Frage ist, dass Sie nicht wissen, wie Sie durch die Kandidaten Ihrer JSON-Objekt in einer Schleife, hier ist, wie Sie es tun:

var candidates = jsonObject.images[0].candidates 
for (var key in candidates) { 
     alert(jsonObject[key]); 
} 
+0

Mein Schlüssel jedes Kandidatobjekts ist anders. Wie es mit der for-Schleife – user1199396

+0

iteriert, deshalb müssen Sie eine Schleife verwenden, anstatt die Schlüssel selbst anzugeben. Verwenden Sie einfach die für jede Schleife wie in meiner Antwort angegeben. Sie brauchen die Schlüsselnamen nicht (da die Variable 'Schlüssel' diese enthält) – Laurens

0

Sie haben Fehler in der JSON-String, überprüfen Sie die folgende Zeile: "gallery_name": "gallerytest1", das char , ist das Problem.

Codebeispiel für die Analyse:

var data = JSON.parse(jsonString); 
alert(data["images"][0]["candidates"][0]["subtest1"]); 

UPDATE:

Hier ist ein Beispiel, wie man mit dinamic Eigenschaften zu arbeiten.

var jsonData = JSON.parse(jsonString); 

     for(i=0; i < jsonData["images"].length; i++) { // foreach image 
      var candidates = jsonData["images"][i]["candidates"]; // array of candidates 

      for (j = 0; j < candidates.length; j++) { // foreach candidate 
       var candidate = candidates[j]; // single candidate 

       for (var key in candidate){ // foreach candidate property 

        // this if condition is required when working with for loop on this way. 
        // for more visit http://stackoverflow.com/questions/9329446/for-each-over-an-array-in-javascript 
        if (typeof candidate[key] === 'function') { 
         continue; 
        } 
        alert("Key: " + key + "\nValue: " + candidate[key]); 
       } 
      } 
     } 
+0

Mein Schlüssel jedes Kandidatenobjekts ist unterschiedlich, also wie es iteriert – user1199396

0

nur einfach Ihre jsonObject auf eine Variable var jsonData beziehen und dann einfache Schleife verwenden, um durch die komplexe jsonObject nach Ihren json Struktur iterieren,

var jsonData = {.....} // Your JSON Object that you added in your Question. 

hier jsonData enthält Ihre komplexen jsonObject Jetzt Iterieren durch die JSON-Elemente.

for(i=0; i < jsonData.images.length; i++){ //iterate throughout the Images Node Array. 

    var candidates = obj.images[i].candidates; //Get the Candidate Node of each Image. 

    for(j=0; j < candidates.length; j++){ //iterate throughout the Candidates Node Array. 

     console.log(candidates[j]); // get the each Candidate to print on Console log of Web Browser. 
    } 
+0

Mein Schlüssel jedes Kandidatenobjekts ist unterschiedlich, also wie es iteriert – user1199396