Прежде всего, JSON, который вы показали, недействителен.Он заканчивается ,
, но вместо запятой это должен быть ]}
, чтобы сделать его действительным примером JSON:
{
"name": "Flip",
"fp": "042018",
"filing_typ": "M",
"gt": 0,
"cur_gt": 0,
"b2cs": [{
"csamt": 0,
"sply_ty": "INTRA"
}]
}
Код 1: допустимый пример JSON, который можетиспользуйте код, приведенный ниже.
Убедитесь, что вы помещаете в анализатор только действительные данные JSON.Если вы дадите неверные данные, анализатор повесит трубку или в лучшем случае выдаст ошибку.
Option Explicit
Public Sub Jsonread()
Dim FSO As New FileSystemObject
Dim JsonTS As TextStream
Set JsonTS = FSO.OpenTextFile("C:\Users\Abd\retoffline_others.json", ForReading)
Dim jsonText As String
jsonText = JsonTS.ReadAll
JsonTS.Close
Dim jsonObject As Object
Set jsonObject = JsonConverter.ParseJson(jsonText)
Debug.Print jsonObject("fp")
Debug.Print jsonObject("b2cs")(1)("sply_ty")
End Sub
Код 2: код VBA для анализа JSON из кода 1.
Объяснение:
jsonObject("b2cs")
означает следующее:
"b2cs": [{
"csamt": 0,
"sply_ty": "INTRA"
}]
, тогда jsonObject("b2cs")(1)
получит первый элемент в []
скобок, которые обозначают следующее:
{
"csamt": 0,
"sply_ty": "INTRA"
}
и, наконец, jsonObject("b2cs")(1)("sply_ty")
- это элемент, который вы искали, и это приведет к:
042018
INTRA