B4X
B4X
JSON: Nested Objects
See more JSON Examples
Here we have a JSON object that contains nested JSON objects. This example demonstrates how to access the contents of the nested objects.
{
"name": "donut",
"image":
{
"fname": "donut.jpg",
"w": 200,
"h": 200
},
"thumbnail":
{
"fname": "donutThumb.jpg",
"w": 32,
"h": 32
}
}
Chilkat B4X Downloads
Dim success As Boolean = False
Dim json As ChilkatJsonObject
json.Initialize
' This is the above JSON with whitespace chars removed (SPACE, TAB, CR, and LF chars).
' The presence of whitespace chars for pretty-printing makes no difference to the Load
' method.
Dim jsonStr As String = "{" & Chr(34) & "name" & Chr(34) & ": " & Chr(34) & "donut" & Chr(34) & "," & Chr(34) & "image" & Chr(34) & ":{" & Chr(34) & "fname" & Chr(34) & ": " & Chr(34) & "donut.jpg" & Chr(34) & "," & Chr(34) & "w" & Chr(34) & ": 200," & Chr(34) & "h" & Chr(34) & ": 200}," & Chr(34) & "thumbnail" & Chr(34) & ":{" & Chr(34) & "fname" & Chr(34) & ": " & Chr(34) & "donutThumb.jpg" & Chr(34) & "," & Chr(34) & "w" & Chr(34) & ": 32," & Chr(34) & "h" & Chr(34) & ": 32}}"
success = json.Load(jsonStr)
If success = False Then
Log(json.LastErrorText)
Return
End If
' Get the "image" object.
Dim imageObj As ChilkatJsonObject
imageObj.Initialize
json.ObjectOf2("image", imageObj)
Log("image: fname=" & imageObj.StringOf("fname") & ", width=" & imageObj.IntOf("w") & ", height=" & imageObj.IntOf("h"))
' Get the "thumbnail" object.
Dim thumbObj As ChilkatJsonObject
thumbObj.Initialize
json.ObjectOf2("thumbnail", thumbObj)
Log("thumbnail: fname=" & thumbObj.StringOf("fname") & ", width=" & thumbObj.IntOf("w") & ", height=" & thumbObj.IntOf("h"))