JSON收集问题

时间:2019-02-06 13:57:00

标签: json

我有一些类似于下面的json(它存储在一个名为json的变量中)。我正在尝试访问此层次结构的最后一个 json数组值- 消息-> set_attributes->行 。到目前为止,json.messages[json.length].set_attributes.row怎么办呢?我正在使用node.js

{  
   "messages":[  
      {  
         "set_attributes":{  
            "row":"13"
         },
         "title":"Jose Cuervo Gold",
         "image_url":"url",
         "subtitle":"$300 | tequila | 20",
         "buttons":[  
            {  
               "type":"show_block",
               "block_names":[  
                  "Add to Cart"
               ],
               "title":"Add to Cart"
            },
            {  
               "type":"show_block",
               "block_names":[  
                  "Add to Cart"
               ],
               "title":"More Info"
            }
         ]
      },
      {  
         "set_attributes":{  
            "row":"14"
         },
         "title":"Jose Cuervo Silver",
         "image_url":"url",
         "subtitle":"$250 | tequila | 30",
         "buttons":[  
            {  
               "type":"show_block",
               "block_names":[  
                  "Add to Cart"
               ],
               "title":"Add to Cart"
            },
            {  
               "type":"show_block",
               "block_names":[  
                  "Add to Cart"
               ],
               "title":"More Info"
            }
         ]
      }
   ]
}

3 个答案:

答案 0 :(得分:2)

答案是

json.messages[json.messages.length-1].set_attributes.row

所有数组索引中的第一个从0开始而不是从一个开始,所有json中的第二个是对象而不是数组,json.messages是您要查找的数组

答案 1 :(得分:1)

最后一个json数组是[json.messages.length -1],因为数组从0开始而不是1

答案 2 :(得分:0)

  • 您需要使用 json.messages.length 而不是json.length。因为在您的情况下,json只是一个简单的对象,不会返回长度。
  • 数组索引从0开始,您需要最后一个索引作为 array.length - 1 < / em>。

因此,您的代码应为-

json.messages[json.messages.length - 1].set_attributes.row
  

建议 以进行安全遍历-

json['messages'][json['messages']['length'] - 1]['set_attributes']['row']