从json对象提取数据
我有一个Json,看起来像 {“valid”:“true”,“isinCode”:null,“lastUpdateTime”:“2012年10月15日14:18:56”,“tradedDate”:“2012年10月15日”,“数据”:[{“change”:“16.75”,“lastPrice”:“5703.30”} 我已经能够使用jsonlib将其提取到JSON对象中从json对象提取数据,json,excel,vba,Json,Excel,Vba,我有一个Json,看起来像 {“valid”:“true”,“isinCode”:null,“lastUpdateTime”:“2012年10月15日14:18:56”,“tradedDate”:“2012年10月15日”,“数据”:[{“change”:“16.75”,“lastPrice”:“5703.30”} 我已经能够使用jsonlib将其提取到JSON对象中 如何将“lastPrice”提取出来作为嵌套的json(数据是另一个json对象)?我使用下面的方法,虽然它非常特定于json,
如何将“lastPrice”提取出来作为嵌套的json(数据是另一个json对象)?我使用下面的方法,虽然它非常特定于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
如果不知道JSON库如何在VBA中构造对象,很难说。也许您可以展示相关代码。