如何提取嵌套的JSON值?

如何提取嵌套的JSON值?,json,vba,ms-access,Json,Vba,Ms Access,有使用JSON和Access经验的人能告诉我这段代码的错误吗?我试图解析一个JSON文件,但有一个嵌套的数据项似乎无法提取。JSON数据的问题部分如下所示: credits":{ "director":[{"displayName":"Bradley Cooper","firstName":"Bradley","lastName":"Cooper","bio":""}], "cast":["Bradley Cooper"," Lady Gaga"," Andrew Dice Clay"," Da

有使用JSON和Access经验的人能告诉我这段代码的错误吗?我试图解析一个JSON文件,但有一个嵌套的数据项似乎无法提取。JSON数据的问题部分如下所示:

credits":{
"director":[{"displayName":"Bradley Cooper","firstName":"Bradley","lastName":"Cooper","bio":""}],
"cast":["Bradley Cooper"," Lady Gaga"," Andrew Dice Clay"," Dave Chappelle"," Sam Elliott"]
}
我可以毫无问题地提取演员名,但我无法为导演检索“displayname”。“director”项中嵌套的“{}”括号让我很不舒服。这是我的密码:

 Sub JSON_prob_demo()

    Dim url As String, data As String
    Dim xml As Object, JSON As Object, colObj As Object, colobj2 As Object, colObj3 As Object, item As Object
    Dim c1 As Variant, varX As Variant

    url = "https://www.tiff.net/data/films/a-star-is-born.json"

    Set xml = CreateObject("MSXML2.XMLHTTP")
    With xml
        .Open "GET", url, False
        .send
        data = .responseText
    End With


    Set JSON = JsonConverter.ParseJson(data)

    Set colObj = JSON("credits")
    For Each c1 In colObj("cast")
        Debug.Print c1
    Next

    Debug.Print "Director:"
    Set colobj2 = colObj("director")
    For Each c1 In colobj2
        Debug.Print c1("displayname")
    Next

End Sub

我已经能够提取四个控制器字段的名称,但我无法访问它们的值。诀窍是什么?

试试这个

Sub getHTTP()

    Dim Url As String, data As String
    Dim xml As Object, JSON As Object, colObj, item


    Url = "https://www.tiff.net/data/films/a-star-is-born.json"

    Set xml = CreateObject("MSXML2.ServerXMLHTTP")
    With xml
        .Open "GET", Url, False
        .send
        data = .responseText
    End With


    Set JSON = JsonConverter.ParseJson(data)
    Set colObj = JSON("credits")("director")



    For Each item In colObj

      For j = 0 To item.Count - 1
              Debug.Print item.Items()(j)
         Next
    Next
End Sub

打印

注意:Item是dictionary对象,因此使用
Debug.Print Item.Items()(j)
检索键值


太棒了!我很高兴我知道什么时候该认输,否则我会浪费所有的时间一事无成。关于解析JSON数据的复杂性,您知道有什么好的在线文档吗?您不需要阅读文档,但只要使用很少的JSON数据就很容易了