DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
String sJsonStr
Variant vImageObj
Handle hoImageObj
Variant vThumbObj
Handle hoThumbObj
String sTemp1
Integer iTemp1
Integer iTemp2
Move False To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
// 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.
Move '{"name": "donut","image":{"fname": "donut.jpg","w": 200,"h": 200},"thumbnail":{"fname": "donutThumb.jpg","w": 32,"h": 32}}' To sJsonStr
Get ComLoad Of hoJson sJsonStr To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoJson To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the "image" object.
Get Create (RefClass(cComChilkatJsonObject)) To hoImageObj
If (Not(IsComObjectCreated(hoImageObj))) Begin
Send CreateComObject of hoImageObj
End
Get pvComObject of hoImageObj to vImageObj
Get ComObjectOf2 Of hoJson "image" vImageObj To iSuccess
Get ComStringOf Of hoImageObj "fname" To sTemp1
Get ComIntOf Of hoImageObj "w" To iTemp1
Get ComIntOf Of hoImageObj "h" To iTemp2
Showln "image: fname=" sTemp1 ", width=" iTemp1 ", height=" iTemp2
// Get the "thumbnail" object.
Get Create (RefClass(cComChilkatJsonObject)) To hoThumbObj
If (Not(IsComObjectCreated(hoThumbObj))) Begin
Send CreateComObject of hoThumbObj
End
Get pvComObject of hoThumbObj to vThumbObj
Get ComObjectOf2 Of hoJson "thumbnail" vThumbObj To iSuccess
Get ComStringOf Of hoThumbObj "fname" To sTemp1
Get ComIntOf Of hoThumbObj "w" To iTemp1
Get ComIntOf Of hoThumbObj "h" To iTemp2
Showln "thumbnail: fname=" sTemp1 ", width=" iTemp1 ", height=" iTemp2
End_Procedure