JSON路径查询数组对象

时间:2017-10-27 13:20:36

标签: jquery json path jsonpath

我有以下json snip并且我试图获取block_device_mapping数组中最后一个boot_index实例的值。我可以让它只显示block_device_mapping属性,但我很难显示任何子对象。

{     "状态" :"活跃",     "映像位置" :"快照",     " block_device_mapping" :" [{\" guest_format \":null,\" boot_index \":0,\" no_device \":null,\ " image_id \":null,\" volume_id \":\" eb7cf04e-c671-449d-ac1a-xxxxxxxxxx \",\" device_name \":null,\" disk_bus \":null,\" volume_size \":null,\" source_type \":\ " volume \",\" tag \":null,\" device_type \":\" disk \",\ " snapshot_id \":null,\" destination_type \":\" volume \",\" delete_on_termination \":true },{\" guest_format \":null,\" boot_index \":1,\" no_device \":null,\" image_id \":null,\" volume_id \":\" 2e31d59a-d005-4bdd-9921-xxxxxxxxx \",\" device_name \&# 34;:null,\" disk_bus \":null,\" volume_size \":null,\" source_type \":\" volume \",\" tag \&#34 ;: null,\" device_type \":\" disk \",\" snapshot_id \":null,\" destination_type \":\" volume \",\" delet e_on_termination \":true},{\" guest_format \":null,\" boot_index \":2,\" no_device \" :null,\" image_id \":null,\" volume_id \":\" 6cbc94dd-bd1f-4845-a528-xxxxxxxxxx \",\ " device_name \":null,\" disk_bus \":null,\" volume_size \":null,\" source_type \&# 34;:\"卷\",\"标记\":null,\" device_type \":\"磁盘\&# 34;,\" snapshot_id \":null,\" destination_type \":\" volume \",\" delete_on_termination \&# 34;:true}]",     "能见度" :"私人" }

有人有任何想法吗?

由于

[R

1 个答案:

答案 0 :(得分:0)

请参阅上面的评论

{   “状态”:“活跃”,   “image_location”:“快照”,   “block_device_mapping”:[     {       “guest_format”:null,       “boot_index”:0,       “no_device”:null,       “image_id”:null,       “volume_id”:“eb7cf04e-c671-449d-ac1a-xxxxxxxxxx”,       “device_name”:null,       “disk_bus”:null,       “volume_size”:null,       “source_type”:“音量”,       “tag”:null,       “device_type”:“磁盘”,       “snapshot_id”:null,       “destination_type”:“音量”,       “delete_on_termination”:是的     },     {       “guest_format”:null,       “boot_index”:1,       “no_device”:null,       “image_id”:null,       “volume_id”:“2e31d59a-d005-4bdd-9921-xxxxxxxxx”,       “device_name”:null,       “disk_bus”:null,       “volume_size”:null,       “source_type”:“音量”,       “tag”:null,       “device_type”:“磁盘”,       “snapshot_id”:null,       “destination_type”:“音量”,       “delete_on_termination”:是的     },     {       “guest_format”:null,       “boot_index”:2,       “no_device”:null,       “image_id”:null,       “volume_id”:“6cbc94dd-bd1f-4845-a528-xxxxxxxxxx”,       “device_name”:null,       “disk_bus”:null,       “volume_size”:null,       “source_type”:“音量”,       “tag”:null,       “device_type”:“磁盘”,       “snapshot_id”:null,       “destination_type”:“音量”,       “delete_on_termination”:是的     }   ]   “可见性”:“私人” }

请注意,通过上面的更改,json更有用。将其复制并粘贴到an online json viewer/editor之类的内容中。正如我上面的评论所示,你的“block_device_mapping”只是一个长字符串:“[{....},{...},{...}]”,所以不是很像json或者很有用。

随着更改“block_device_mapping”现在由三个单独的对象组成。

你可以通过someRootObject.block_device_mapping [2]来找到最后一个“boot_index”。带有“someRootObject”的.boot_index就是你在代码中调用整个json对象的任何内容。