今回はJSONのValue一覧を取得する方法を紹介します。JavaScirptでいうところのObject.values()に相当します。
今回は以下のようなJSONを準備しました。Value一覧を取得するので、value1 , value2, value3,・・・value10が取得できれば良いことになります。
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4",
"key5": "value5",
"key6": "value6",
"key7": "value7",
"key8": "value8",
"key9": "value9",
"key10": "value10"
}
JSONのキー一覧を取得したい場合は、以下記事を参考にしてください。
事前準備
JSONパーサーを自前で準備するのは大変なので、VBA-JSONを利用します。設定方法は以下の記事を参照してください。
ItemsとFor Each Inで解決する
JSONパーサは、JSON文字列をDictionary型(またはCollection型)に変換します。Dictionary型のValue一覧取得と同様な方法を利用することができます。Value一覧取得の場合は、ItemsとFor Each Inを利用することになります。
サンプログラム(コピペでOK)
Option Explicit
Sub sample()
Dim jsonStr As String
jsonStr = "{""key1"":""value1"",""key2"":""value2"",""key3"":""value3"",""key4"":""value4"",""key5"":""value5"",""key6"":""value6"",""key7"":""value7"",""key8"":""value8"",""key9"":""value9"",""key10"":""value10""}"
Dim jsonObj As Object
Set jsonObj = JsonConverter.ParseJson(jsonStr)
Dim v As Variant ' For Each に渡す変数は、必ずVariant型
For Each v In jsonObj.Items
Debug.Print v
Next
Debug.Print "キーの数:" & jsonObj.Count ' キーの数はCount変数で取得できます
End Sub