0

我的 Json 看起来像 {"valid":"true","isinCode":null,"lastUpdateTime":"15-OCT-2012 14:18:56","tradedDate":"15OCT2012","data": [{"change":"16.75","lastPrice":"5,703.30"}

我已经能够使用 jsonlib 将其提取到 JSON 对象中。

我如何从中提取“lastPrice”作为它的嵌套 json(数据是另一个 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 回答