我有一些类似于下面的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"
}
]
}
]
}
答案 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
只是一个简单的对象,不会返回长度。array.length - 1
< / em>。因此,您的代码应为-
json.messages[json.messages.length - 1].set_attributes.row
建议 以进行安全遍历-
json['messages'][json['messages']['length'] - 1]['set_attributes']['row']