dポイントプレゼントキャンペーン実施中!

VBAでJSONをパースしたく、以下サイトを参考に実装しています。

http://kenchanz.blogspot.com/2011/01/vbajson.html

こちらのサイトで記述されている形式のJSONデータをパースすることはできたのですが、
今回パースしたい以下データのアクセス方法を見つけることができません。

■パースしたいJSONデータ
{"lists":[{"KEY":{"NAME":"yamada"}},{"KEY":{"NAME":"hanako"}}]}

■取得したい値
最終的にはlistsキーの値となっている配列に対して、
ループ処理を行い、NAMEキーの値であるyamadaや、hanakoを取得したい

■実装方法
Set objJSON = sc.CodeObject.jsonParse(JSONデータ)
Set objJSON2 = objJSON.lists

ここまでは動くのですが、以降がわかりません。

有識者の方、どうぞアドバイスを頂けますようお願いいたします。

A 回答 (1件)

Private Sub test()



'//オブジェクト生成
Set sc = CreateObject("ScriptControl")

'//言語の設定
sc.Language = "JScript"

'//jsonをパースする為の関数
strFunc = "function jsonParse(s) { return eval('(' + s + ')'); }"
'//関数を追加
sc.AddCode strFunc

stmp = "{""lists"":[{""Key"":{""Name"":""yamada""}},{""Key"":{""Name"":""hanako""}}]}"

‘KEY → Key, NAME → Nameに変更

Set objJSON = sc.CodeObject.jsonParse(stmp)



For Each vItem In objJSON.lists

s1 = vItem.Key.Name

Next


End Sub


marimokoです☆
    • good
    • 0
この回答へのお礼

回答ありがとうございました!

無事動かすことができました。

VBAって大文字小文字の扱いがややこしい感じなんですね。
VBAのエディターが勝手に先頭文字を小文字→大文字にしてしまったり・・。
(VBA歴1週間)

とても良い勉強になりました。

本当にありがとうございます!

お礼日時:2011/06/23 22:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!