Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从json对象提取数据_Json_Excel_Vba - Fatal编程技术网

从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,

我有一个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,但足够轻,可以在每次需要解析新数据时重新调整:

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中构造对象,很难说。也许您可以展示相关代码。