2017-10-27 19 views
0

次のjson snipとimは、block_device_mapping配列のboot_indexの最後のインスタンスの値を取得しようとしています。私はblock_device_mappingプロパティだけを表示することができますが、子オブジェクトを表示するのは難しいです。JSONパスクエリ配列オブジェクト

{ "ステータス": "アクティブ"、 "IMAGE_LOCATION": "スナップショット"、 "block_device_mapping": "[{\" guest_formatの\ ":ヌル、\" boot_index \ ":0、\" no_device \ "disk_bus \":ヌル、\ "image_id \":null、\ "volume_id \":\ "eb7cf04e-c671-449d-ac1a-xxxxxxxxxx \ \ "device_type \":\ "disk \"、\ "snapshot_id \":null、\ "destination_type"、 "volume_size" \ "ゲスト_形式\":null、\ "boot_index \":1、\ "no_device \":null、\ "image_id \":null \ ":\"ボリューム\ "、\" delete_on_termination \ ": \ "disk_bus \":null、\ "volume_size \":null、\ "source_type \":\ "volume_id \":\ "volume_id \":\ "2_31d59a-d005-4bdd-9921-xxxxxxxxx \"、\ "device_name \ \ "device_type \":\ "disk \"、\ "snapshot_id \":null、\ "destination_type \":\ "ボリューム\ "、" "\" image_id \ ":ヌル、\" volume_id \ ":\" boot_index \ ":\" no_device \ ":\" image_id \ ":\" delete_on_termination \ ": \ "disk_bus \":null、\ "volume_size \":null、\ "source_type \":\ "ボリューム\"、\ "6cbc94dd-bd1f-4845-a528-xxxxxxxxxx \ \ "タグ\":\ "デバイスタイプ\":\ "ディスク\"、\ "スナップショットID \":null、\ "目的地タイプ\":\ "ボリューム\"、\ "delete_on_termination \": 、 "visibility": "private" }

誰でも知りましたか?

おかげ

R

+0

あなたはそのjsonにこだわっていますか? "[{.... ....、{...}、{...}]"おそらくあなたが意図したものではないでしょうから、 "block_device_mapping"はちょうど1つの長い文字列であるため、あまりうまく構成されていません。そして引用符の外側にあるそれらのバックスラッシュ。私は私の答えであなたのjsonを以下のように再構成しました。 – Mark

答えて

0

は私のコメント上記を参照してください。

{ "ステータス": "アクティブ"、 "IMAGE_LOCATION": "スナップショット"、 "block_device_mapping":[ { "guest_format":ヌル、 "boot_index":0、 "no_device":ヌル、 "image_idは":ヌル、 "volume_id": "eb7cf04e-c671-449d-ac1a-XXXXXXXXXX"、 "DEVICE_NAME":ヌル、 "disk_bus":ヌル、 "volume_size":ヌル、 「SOURCE_TYPE ":" volume "、 " tag ":null、 " device_type ":" disk "、 " snapshot_id ":null、 "destination_type": "ボリューム"、 "delete_on_termination":真 }、 { "guest_format":ヌル、 "boot_index":1、 "no_device":ヌル、 "image_idは":ヌル、 " volume_id ": "2e31d59a-d005-4bdd-9921-XXXXXXXXX"、 "デバイス名":ヌル、 "disk_bus":ヌル、 "volume_size":ヌル、 "SOURCE_TYPE": "ボリューム"、 "タグ": null、 "device_type": "disk"、 "snapshot_id":null、 "destination_type": "volume"、 "delete_on_termination":true }、 { "guest_format":ヌル、 "boot_index":2、 "no_device":ヌル、 "image_idは":ヌル、 "volume_id": "6cbc94dd-bd1f-4845-A528-XXXXXXXXXX"、 "デバイス名":ヌル、 "disk_bus":ヌル、 "volume_size":ヌル、 "SOURCE_TYPE": "ボリューム"、 "タグ":ヌル、 "DEVICE_TYPE": "ディスク"、 "snapshot_id" :null、 "destination_type": "ボリューム"、 "delete_on_termination":true } ]、 "visibility": "private" }

上記の変更を加えれば、jsonがはるかに役立つことに注意してください。コピーしてan online json viewer/editorのようなものに貼り付けます。私の上記のコメントは、あなたの "block_device_mapping"がただ一つの長い文字列であることを示しているので、 "[{.... ....、{...}、{...}]"なので、

"block_device_mapping"という変更は、3つの別々のオブジェクトで構成されました。

someRootObject.block_device_mapping [2] .boot_indexを介して最後の "boot_index"にアクセスできます。 "someRootObject"は、コード内でこのjsonオブジェクト全体を呼び出すものであれば何でも構いません。

関連する問題