2016-10-01 5 views
0

レスポンスで2番目のレベルのjson値を反復しようとしています。2番目のレベルのJson値を取得する方法

これは、JSONのサンプルです:この例のTABLEDATAが理想的になります。この例でそう

var feat = resp.Items, 
     tableData = []; 

    // Iterate over the JSON object 
    for (var i = 0, len = feat.length; i < len; i++) { 
     tableData.push({ 
      "name": feat[i].Name, 
      "Timestamp": feat[i].Timestamp, 
      "value": feat[i].Items.Value, 

     }); 
    } 

{ 

    "Links": {}, 

"Items": [ 

    { 

    "WebId": "A0EUfSms148rEStZ8_fh", 

    "Name": "AA to Slurry ", 

    "Path": "klj", 

    "Links": { 

    "Source": "" 

    }, 

    "Items": [ 

    { 

     "Timestamp": "2016-08-21T05:14:27.0180053Z", 

     "Value": 0.0154830571, 

     "UnitsAbbreviation": "%", 

     "Good": true, 

     "Questionable": false, 

     "Substituted": false 

    }, 

    { 

     "Timestamp": "2016-08-21T05:14:30Z", 

     "Value": 0.0155982981, 

     "UnitsAbbreviation": "%", 

     "Good": true, 

     "Questionable": false, 

     "Substituted": false 

    }, 

    { 

     "Timestamp": "2016-08-21T05:14:30Z", 

     "Value": 0.0155982981, 

     "UnitsAbbreviation": "%", 

     "Good": true, 

     "Questionable": false, 

     "Substituted": false 

    }, 

    { 

     "Timestamp": "2016-08-21T05:14:33.024002Z", 

     "Value": 0.0155704552, 

     "UnitsAbbreviation": "%", 


    "Items": [ 

{ 

    "WebId": "A0EUfSms148rEStZ8_fh", 

    "Name": “Slurry ", 

    "Path": "klj", 

    "Links": { 

    "Source": "" 

    }, 

    "Items": [ 

    { 

     "Timestamp": "2016-08-21T05:14:27.0180053Z", 

     "Value": 0.0154830571, 

     "UnitsAbbreviation": "%", 

     "Good": true, 

     "Questionable": false, 

     "Substituted": false 

    }, 

    { 

     "Timestamp": "2016-08-21T05:14:30Z", 

     "Value": 0.0155982981, 

     "UnitsAbbreviation": "%", 

     "Good": true, 

     "Questionable": false, 

     "Substituted": false 

    }, 

    { 

     "Timestamp": "2016-08-21T05:14:30Z", 

     "Value": 0.0155982981, 

     "UnitsAbbreviation": "%", 

     "Good": true, 

     "Questionable": false, 

     "Substituted": false 

    }, 

    { 

     "Timestamp": "2016-08-21T05:14:33.024002Z", 

     "Value": 0.0155704552, 

     "UnitsAbbreviation": "%", 

これは名前のみを返し、私がこれまで持っているコードです。

name  | Timestamp | value 
AA to Slurry 
AA to Slurry 
AA to Slurry 
AA to Slurry 
AA to Slurry 
AA to Slurry 
Slurry 
Slurry 
Slurry 
Slurry 
Slurry 
Slurry 

第2レベルの対応するタイムスタンプと値 "Iテムズ "。今すぐ取得するのは名前の値です。名前を取得して2番目のレベルの項目を反復するにはどうすればよいですか?

+1

JSONを持っていますか、オブジェクトがありますか? – adeneo

+0

@adeneo私はJSONを持っています。 – llerdal

+0

@llerdalあなたは 'resp'の値を持っていることを正確に知る必要があります。どのようにしてJSONをJSオブジェクトにして解析しましたか?あなたがJSONではなくJavaScriptでオブジェクトを使用している可能性があります.JSONはJavaScriptに解析する必要があるテキスト形式のファイルです。 –

答えて

3

あなたの問題は、あなたのサブアイテム配列が直接アクセスされていると思います。 (feat[i].Items.Value)、代わりに2番目の配列をループする必要があります。私はこのコードをまとめてあなたを始めました.Jsonの項目をループし、最初の配列の各項目の中の項目をループします。

json.Items.forEach(function(item){ 
    item.Items.forEach(function(subItem){ 
    tableData.push({ 
     'name':item.Name, 
     'timestamp':item.TimeStamp, 
     'value':subItem.Value 
    }); 
    }); 
}); 
関連する問題