簡體   English   中英

使用JSON.parse(),如何在多維數組中取值?

[英]With use JSON.parse(), how to take value in multi dimensional array?

在使用JSON.parse之前,JSON數組如下所示:

var temp = {
      "queries": [
    {
      "sample_size": 3,
      "results": [
        {
          "name": "temperature",
          "tags": {
            "Tag": [
              "temperature"
            ]
           },
           "values": [
            [
              1452221580000,
              27.5
            ],
            [
              1452221640000,
              27.1
            ],
            [
              1452221700000,
              27.3
            ]
           ]
        ]}
     ]}
    }

我需要從數組中獲取值,所以我使用JSON.parse()。

var jsonparse_temp = JSON.parse(temp);
var dataNum = jsonparse_temp ['queries']['sample_size'];
var timestamp1 = jsonparse_temp ['queries']['results']['value'][0][0]
var value1 = jsonparse_temp ['queries']['results']['value'][0][1]

之后, value1等於27.5嗎? 我不確定這種方式是否可以將值簽名為變量。

它不是JSON字符串,而是格式正確的對象,無需解析它。 有嵌套的數組,因此您需要使用索引從數組中獲取對象元素。

 var temp = { "queries": [{ "sample_size": 3, "results": [{ "name": "temperature", "tags": { "Tag": [ "temperature" ] }, "values": [ [ 1452221580000, 27.5 ], [ 1452221640000, 27.1 ], [ 1452221700000, 27.3 ] ] }] }] }; // using bracket notation var dataNum = temp['queries'][0]['sample_size']; var timestamp1 = temp['queries'][0]['results'][0]['values'][0][0] var value1 = temp['queries'][0]['results'][0]['values'][0][1]; console.log(dataNum, timestamp1, value1); // using dot notation var dataNum1 = temp.queries[0].sample_size; var timestamp11 = temp.queries[0].results[0].values[0][0] var value11 = temp.queries[0].results[0].values[0][1]; console.log(dataNum1, timestamp11, value11); 

JSON數組如下所示:

那不是JSON。 那是一個JavaScript對象。 您的問題中的任何地方都沒有JSON。

 var jsonparse_temp = JSON.parse(temp); 

由於temp不是JSON字符串,因此將返回undefined

 ['queries']['sample_size']; 

查詢是一個數組,而不是一個對象。 它沒有sample_size屬性。

該陣列中的第一個值是一個對象,它確實有該屬性。

您需要按順序訪問數據結構的每個級別。 您不能跳過關卡。

var dataNum = temp.queries[0].sample_size;

將您的代碼更改為此:

 var dataNum = temp['queries']['sample_size']; var timestamp1 = temp['queries']['results']['value'][0][0] var value1 = temp['queries']['results']['value'][0][1] 

暫無
暫無

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

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