DataFlex
DataFlex
JSON: Array of Objects
See more JSON Examples
Here we have a JSON object that contains an array, where each element in the array is a JSON object. This example demonstrates how to access the objects contained within an array.
{
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter","lastName":"Jones"}
]
}
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
String sJsonStr
Variant vEmployees
Handle hoEmployees
Integer iNumEmployees
Integer i
Variant vEmpObj
Handle hoEmpObj
String sTemp1
String sTemp2
Boolean bTemp1
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 '{"employees":[{"firstName":"John", "lastName":"Doe"},{"firstName":"Anna", "lastName":"Smith"},{"firstName":"Peter","lastName":"Jones"}]}' To sJsonStr
Get ComLoad Of hoJson sJsonStr To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoJson To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the "employees" array.
Get ComArrayOf Of hoJson "employees" To vEmployees
If (IsComObject(vEmployees)) Begin
Get Create (RefClass(cComChilkatJsonArray)) To hoEmployees
Set pvComObject Of hoEmployees To vEmployees
End
Get ComLastMethodSuccess Of hoJson To bTemp1
If (bTemp1 = False) Begin
Showln "employees member not found."
Procedure_Return
End
// Iterate over each employee, getting the JSON object at each index.
Get ComSize Of hoEmployees To iNumEmployees
Move 0 To i
While (i < iNumEmployees)
Get ComObjectAt Of hoEmployees i To vEmpObj
If (IsComObject(vEmpObj)) Begin
Get Create (RefClass(cComChilkatJsonObject)) To hoEmpObj
Set pvComObject Of hoEmpObj To vEmpObj
End
Get ComStringOf Of hoEmpObj "firstName" To sTemp1
Get ComStringOf Of hoEmpObj "lastName" To sTemp2
Showln "employee[" i "] = " sTemp1 " " sTemp2
Send Destroy of hoEmpObj
Move (i + 1) To i
Loop
Send Destroy of hoEmployees
End_Procedure