Estoy tratando de analizar datos de un archivo Json utilizando VBA Json, que es así:
{
"a131331": {
"time" : "10:28 a.m.",
"title" : "first"
},
"b319810" : {
"time" : "11:14 a.m.",
"title" : "third"
},
...
}
Quiero reemplazar la llave a131331
con 1
, b319810
con 2
y así sucesivamente en la primera columna de una hoja de cálculo, y coloque los otros datos correspondientes en las siguientes columnas. Así que mi hoja de excel se vería así:
ID|Time |Title
1 |10.28|first
2 |11.14|third
Estoy usando este código en 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
Entiendo que puedo crear una columna con el rango de números comenzando desde 1 para la columna de ID. Pero, ¿cómo analizo esos objetos? a131331
y b319810
?
Respuestas
1 para la respuesta № 1Su objeto JSON es un diccionario de secuencias de comandos, por lo que puede iterar sobre las claves o sobre los valores.
Iterando sobre las teclas:
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
Salida:
a131331 10:28 a.m. first
b319810 11:14 a.m. third