Does this give you any assistance?

Function ParseJSON(json$, Optional key$ = "obj") As Object
    p = 1
    token = Tokenize(json)
    Set dic = CreateObject("Scripting.Dictionary")
    If token(p) = "{" Then ParseObj key Else ParseArr key
    Set ParseJSON = dic
End Function

Function ParseObj(key$)
    Do: p = p + 1
    Select Case token(p)
        Case "]"
        Case "[":  ParseArr key
        Case "{"
        If token(p + 1) = "}" Then
            p = p + 1
           dic.Add key, "null"
        Else
            ParseObj key
        End If
        Case "}":  key = ReducePath(key): Exit Do
        Case ":":  key = key & "." & token(p - 1)
        Case ",":  key = ReducePath(key)
        Case Else: If token(p + 1) <> ":" Then dic.Add key, token(p)
    End Select
    Loop
End Function

Function ParseArr(key$)
    Dim e&
    Do: p = p + 1
    Select Case token(p)
        Case "}"
        Case "{":  ParseObj key & ArrayID(e)
        Case "[":  ParseArr key
        Case "]":  Exit Do
        Case ":":  key = key & ArrayID(e)
        Case ",":  e = e + 1
        Case Else: dic.Add key & ArrayID(e), token(p)
    End Select
    Loop
End Function