簡體   English   中英

將嵌套的json數組轉換為javascript數組

[英]convert nested json array to javascript array

我有一個這樣的json數組(為簡潔起見,在這里被截斷):

[
  {
    "name": null,
    "code": null,
    "results": [
      {
        "date": "2012-04-28T06:00:00.000Z",
        "name": null,
        "value": 135,
        "unit": "MG/DL",
        "code": null
      },
      {
        "date": "2012-04-28T06:00:00.000Z",
        "name": null,
        "value": 59,
        "unit": "MG/DL",
        "code": null
      }
    ]
  },
etc, etc,
]

我想將其轉換為javascript數組,以便提取日期和值以進行繪制。 我看過有關eval和JSON.parse的內容,但無法弄清楚如何正確訪問值。

json文本稱為實驗室,所以我這樣做:

var obj = JSON.parse(labs);
alert("obj.length="+obj.length);    //correctly shows 22 objects
for (var prop in obj) {
    if (obj.hasOwnProperty(prop)) {
        alert("prop: " +prop + " value: " +obj[prop]);
    }
}

輸出為prop:0值:[object Object] prop:1值:[object Object]等。

如何獲取日期字段和值字段?

您可以使用以下方法檢索第一個"date"

obj[0].results[0].date

基於此,您可以為每個0嵌套循環。 第一個基於obj

for (var i = 0; i < obj.length; i++) {
    // ...
}

另一個基於obj每個嵌套的"results"

    var results = obj[i].results;

    for (var j = 0; j < results.length; j++) {
        // ...
    }

您可以在其中警告要關注的字段:

        alert("Date: " + results[j].date + "\nValue: " + results[j].value);

用常規的for循環包裝循環。 現在,您有一個對象數組。

for (var i=0; i<obj.length; i++) {
    for (var prop in obj[i]) {
        if (obj[i].hasOwnProperty(prop)) {
            alert("prop: " +prop + " value: " +obj[i][prop]);
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM