BtoBPF API Response JSONをVBAでパーサー | 備忘録 (。・_・。)ノ

水曜日の定時後から悩み続けて本日解決。

 

①パターン

Set js = CreateObject("ScriptControl")
js.Language = "JScript"
js.AddCode "function jsonParse(str) { return eval('(' + str + ')'); };"

Set json = js.codeobject.jsonParse(str)


②パターン

Set Parse = JSONConverter.ParseJson(JSON)

 

①また②をそれぞれ試してみた。

最終②で落ち着いた。

 

VBA-JSON v2.3.1 を利用

エラーになったのでコメント

Public Function ParseJson(ByVal JsonString As String) As Object
'Err.Raise 10001, "JSONConverter", json_ParseErrorMessage(JsonString, json_Index, "Expecting '{' or '['")

 

■VBAロジック

Option Explicit
Private Sub VBA_JSON_TEST()
Dim Parse As Object
Dim i As Long
Dim j As Long
Dim strJson As String
    strJson = ""
    For i = 1 To Worksheets(1).Range("A1").End(xlDown).Row
        strJson = strJson & Worksheets(1).Cells(i, 1)
    Next i
    Set Parse = JsonConverter.ParseJson(strJson)
    Debug.Print Parse("result")
    Debug.Print Parse("jounal_frees")("jnl_free_code1")
    For i = 1 To Parse("invdata").Count
        Debug.Print Parse("invdata")(i)("inv_no")
        For j = 1 To Parse("invdata")(i)("banks").Count
            Debug.Print Parse("invdata")(i)("banks")(j)("depositor_name")
        Next j
        For j = 1 To Parse("invdata")(i)("details").Count
            Debug.Print Parse("invdata")(i)("details")(j)("item_aut_amount_d")
        Next j
    Next i
    Set Parse = Nothing
End Sub

 

■イミディエイトウィンドウ

ok
FREE01
INV111
振込先預金者1
振込先預金者2
1000
1100
1200
INV102
振込先預金者1
振込先預金者2
2000
2100
2200

 

■テストJSON