Estou tentando analisar dados de um arquivo Json usando o VBA Json, que é assim:
{
"a131331": {
"time" : "10:28 a.m.",
"title" : "first"
},
"b319810" : {
"time" : "11:14 a.m.",
"title" : "third"
},
...
}
Eu quero substituir a chave a131331
com 1
, b319810
com 2
e assim por diante na primeira coluna de uma planilha e coloque os outros dados correspondentes nas próximas colunas. Portanto, minha planilha do Excel se pareceria com:
ID|Time |Title
1 |10.28|first
2 |11.14|third
Estou usando esse código no VBA:
Public Sub ExcelJson()
Dim FSO As New FileSystemObject
Dim JsonTS As TextStream
Set JsonTS = FSO.OpenTextFile("M:Ds Downloads Newtest.json", ForReading)
JsonText = JsonTS.ReadAll
JsonTS.Close
Set JSON = ParseJson(JsonText)
i = 2
For Each Item In JSON
Sheets(1).Cells(i, 1).Value = Item("time")
Sheets(1).Cells(i, 2).Value = Item("title")
i = i + 1
Next
MsgBox ("complete")
End Sub
Entendo que posso criar uma coluna com o intervalo de números que começa em 1 para a coluna ID. Mas como analiso esses objetos a131331
e b319810
?
Respostas:
1 para resposta № 1Seu objeto JSON é um Dicionário de Script, portanto, você pode iterar sobre as Chaves ou sobre os Valores.
Iterando sobre as chaves:
Dim Json As Object, k
"getting the JSON content from a worksheet for testing purposes...
Set Json = JsonConverter.ParseJson(Sheet1.Range("B1").Value)
For Each k In Json.Keys
Debug.Print k, Json(k)("time"), Json(k)("title")
Next k
Saída:
a131331 10:28 a.m. first
b319810 11:14 a.m. third