0

{"valid": "true"、 "isinCode":null、 "lastUpdateTime": "15-OCT-2012 14:18:56"、 "tradedDate": "15OCT2012"、 "data":のようなJsonがあります[{"change": "16.75"、 "lastPrice": "5,703.30"}

jsonlibを使用してこれをJSONオブジェクトに抽出することができました。

ネストされたjsonとしてこれから「lastPrice」を抽出するにはどうすればよいですか(データは別のjsonオブジェクトです)?

4

1 に答える 1

1

私は以下のようなものを使用しますが、それはJSONに非常に固有ですが、新しいデータを解析する必要があるたびに再ジグするのに十分軽いです:

Public Sub ReadJson()

    Const JsonString    As String = "{""valid"":""true"",""isinCode"":null,""lastUpdateTime"":""15-OCT-2012 14:18:56"",""tradedDate"":""15OCT2012"",""data"":[{""change"":""16.75"",""lastPrice"":""5,703.30""}]}"
    Dim objJson         As Object
    Dim objSE           As Object

    Set objSE = CreateObject("ScriptControl")

    With objSE
        .Language = "JScript"
        .AddCode "function getProp(jsonObj, propertyName) { return jsonObj[propertyName]; } "
        .AddCode "function getSubProp(jsonObj, pName, propertyName) { return jsonObj[pName][0][propertyName]; } "
    End With

    With objSE
        Set objJson = .Eval("(" + JsonString + ")")
        Debug.Print .Run("getProp", objJson, "valid")
        Debug.Print .Run("getProp", objJson, "isinCode")
        Debug.Print .Run("getProp", objJson, "lastUpdateTime")
        Debug.Print .Run("getProp", objJson, "tradedDate")
        Debug.Print .Run("getSubProp", objJson, "data", "change")
        Debug.Print .Run("getSubProp", objJson, "data", "lastPrice")
    End With

End Sub
于 2012-10-15T16:48:32.760 に答える