DataFlex
DataFlex
Loading and Parsing a JSON Array
See more JSON Examples
A JSON array is JSON that begins with "[" and ends with "]". For example, this is a JSON array that contains 3 JSON objects.
[{"name":"jack"},{"name":"john"},{"name":"joe"}]
A JSON object, however, is JSON that begins with "{" and ends with "}". For example, this JSON is an object that contains an array.
{"pets":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}
This example shows how loading a JSON array is different than loading a JSON object.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
String sStrJsonArray
String sStrJsonObject
Handle hoJsonArray
Boolean iSuccess
Integer i
Variant vJsonObj
Handle hoJsonObj
Handle hoJsonObject
Integer iNumPets
String sTemp1
Move '[{"name":"jack"},{"name":"john"},{"name":"joe"}]' To sStrJsonArray
Move '{"pets":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}' To sStrJsonObject
// A JSON array must be loaded using JsonArray:
Get Create (RefClass(cComChilkatJsonArray)) To hoJsonArray
If (Not(IsComObjectCreated(hoJsonArray))) Begin
Send CreateComObject of hoJsonArray
End
Get ComLoad Of hoJsonArray sStrJsonArray To iSuccess
// Examine the values:
Move 0 To i
While (i < (ComSize(hoJsonArray)))
Get ComObjectAt Of hoJsonArray i To vJsonObj
If (IsComObject(vJsonObj)) Begin
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonObj
Set pvComObject Of hoJsonObj To vJsonObj
End
Get ComStringOf Of hoJsonObj "name" To sTemp1
Showln i ": " sTemp1
Send Destroy of hoJsonObj
Move (i + 1) To i
Loop
// Output is:
// 0: jack
// 1: john
// 2: joe
// A JSON object must be loaded using JsonObject
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonObject
If (Not(IsComObjectCreated(hoJsonObject))) Begin
Send CreateComObject of hoJsonObject
End
Get ComLoad Of hoJsonObject sStrJsonObject To iSuccess
// Examine the values:
Move 0 To i
Get ComSizeOfArray Of hoJsonObject "pets" To iNumPets
While (i < iNumPets)
Set ComI Of hoJsonObject To i
Get ComStringOf Of hoJsonObject "pets[i].name" To sTemp1
Showln i ": " sTemp1
Move (i + 1) To i
Loop
// Output is:
// 0: jack
// 1: john
// 2: joe
End_Procedure