Вы не можете применять таким образом, особенно с ()
.Вы можете указать пути в виде списка элементов пути, разделенных запятыми (без пробелов), и выполнить следующие действия.Вам также необходимо удалить дополнительные ","
после игрока.
Примечание. Я проверяю UBound
массива, сгенерированного разбиением на ","
строки, считанной с листа и содержащейся в массиве (arr
) с текущим индексом i
.Это гарантирует, что я применяю вложенный синтаксис записи для получения требуемого значения.
Я не уверен, откуда вы получаете "data"
.Я не вижу этого в предоставленной строке.Вы измените в соответствии с вашим фактическим JSON, если отличается.
Данные:
Выход:
VBA:
Option Explicit
Public Sub GetInfoFromSheet()
Dim json As Object, jsonSource As String, paths(), i As Long, ws As Worksheet, arr() As String
Set ws = ThisWorkbook.Worksheets("Sheet1")
jsonSource = ws.[C1]
Set json = JsonConverter.ParseJson(jsonSource)
paths = Application.Transpose(ws.Range("A1:A3").Value)
For i = LBound(paths) To UBound(paths)
arr = Split(paths(i), ",")
Select Case UBound(arr)
Case 2
Debug.Print json(arr(0))(arr(1))(arr(2))
Case 3
Debug.Print json(arr(0))(arr(1))(arr(2))(arr(3))
End Select
Next i
End Sub
Строка JSON в C1:
{ "quiz": { "sport": { "name": "Basketball", "Questions":{ "question1": "Which one is correct team name in NBA?", "question2":"Who is your favorite player"} } } }