2016-04-03 5 views
0

でJSONの結果を解析するためにはどうすれば
は私がしたい私に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" 
     } 
     ] 
    } ] 
} 

を助けてください、私は、コードを持っているが、それは値ごとに異なるキーがある私のデータでのみ一意キー を上の作品JSONの結果を持っていますそれ エリザベスからすべてのcatidatesし、その値を解析= 0.77777 subtest1 = JSONは、すでにJSONとしてJavascriptのために '解析さ' は0.802138030529022

+0

これは 'javascript 'の' json'で簡単に動作します。なぜなら、 'data'にアクセスするサードパーティのライブラリが必要ないからです。任意の複雑な「json」から。単に配列を繰り返し処理するだけです。 Thanks @ user1199396 –

+0

これはJSONではなく、あなたは「解析していません」。 ** JavaScriptオブジェクト**です。**あなたは**アクセスしています。とにかく、あなたが*私はすべてのcatidatesとその値を解析したいと言うと、elizabeth = 0.77777 subtest1 = 0.802138030529022 *、私は理解できません。 0.777777はどこから来ますか?どのエリザベス・バリューを取得したいのかをどのように知るのですか? 'subtest1'はどういう意味ですか? –

答えて

0

は、JavaScriptのオブジェクト表記を意味しています。 あなたの質問は、あなたがどのようにJSONオブジェクトの候補をループするのか分からないことを、ここにあなたがそれを行う方法ですされている場合:

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

各候補者の私の主なオブジェクト、それはあなたの代わりに鍵を自分でspecifingのループを使用する必要が理由ですループ – user1199396

+0

のために使用して反復するので、どのように異なっています。私の答えに指定されているように、それぞれのループに対してforを使用してください。あなたは、各候補者の私の主なオブジェクト – Laurens

0

あなたのJSON文字列に誤りがあり、この行を確認してください。"gallery_name": "gallerytest1", char ,が問題です。解析のため

コード例:

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

UPDATE:

ここでは、動の特性で動作する方法の例です。

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

(これを保持しているkey'変数 'など)のキー名を必要としない、それはオブジェクトの各候補者の – user1199396

0

はただ単に変数var jsonDataにごjsonObjectを参照して、あなたのjson構造ごとに複雑なjsonObjectを反復処理する単純なループを使用し、

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

ここjsonDataあなたの複雑なjsonObject今を反復含まれていjson要素。

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

私のキーを反復どのように異なるのは、それが反復どのように異なっています – user1199396