DataFlex
DataFlex
Get the Index of a JSON Member
See more JSON Examples
This example demonstrates how to get the index of a given member by name.
{
"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
Integer iNameIndex
Integer iThumbIndex
Integer iFnameIndex
Variant vImageObj
Handle hoImageObj
String sTemp1
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
// The top-level JSON object has three members: name, image, and thumbnail.
Get ComIndexOf Of hoJson "name" To iNameIndex
// The index of the "name" member is 0.
Showln "nameIndex = " iNameIndex
Get ComIndexOf Of hoJson "thumbnail" To iThumbIndex
// The index of the "thumbnail" member is 2.
Showln "thumbIndex = " iThumbIndex
// The "fname" member is NOT a direct member of the top-level JSON object.
// It is a member of a nested object. If we try to get the index of this
// member using the top-level JSON object, it is not found (and returns -1).
Get ComIndexOf Of hoJson "fname" To iFnameIndex
// The fnameIndex is -1 (not found). This is correct.
Showln "fnameIndex = " iFnameIndex
// 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
// Now we can get the index of the "fname" object, because it is a direct
// member of the "image" object:
Get ComIndexOf Of hoImageObj "fname" To iFnameIndex
Showln "fnameIndex = " iFnameIndex
End_Procedure