PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkJsonArray.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
strJsonArray.s = "[{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "jack" + Chr(34) + "},{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "john" + Chr(34) + "},{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "joe" + Chr(34) + "}]"
strJsonObject.s = "{" + Chr(34) + "pets" + Chr(34) + ":[{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "jack" + Chr(34) + "},{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "john" + Chr(34) + "},{" + Chr(34) + "name" + Chr(34) + ":" + Chr(34) + "joe" + Chr(34) + "}]}"
; A JSON array must be loaded using JsonArray:
jsonArray.i = CkJsonArray::ckCreate()
If jsonArray.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonArray::ckLoad(jsonArray,strJsonArray)
; Examine the values:
i.i = 0
While i < CkJsonArray::ckSize(jsonArray)
jsonObj.i = CkJsonArray::ckObjectAt(jsonArray,i)
Debug Str(i) + ": " + CkJsonObject::ckStringOf(jsonObj,"name")
CkJsonObject::ckDispose(jsonObj)
i = i + 1
Wend
; Output is:
; 0: jack
; 1: john
; 2: joe
; A JSON object must be loaded using JsonObject
jsonObject.i = CkJsonObject::ckCreate()
If jsonObject.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoad(jsonObject,strJsonObject)
; Examine the values:
i = 0
numPets.i = CkJsonObject::ckSizeOfArray(jsonObject,"pets")
While i < numPets
CkJsonObject::setCkI(jsonObject, i)
Debug Str(i) + ": " + CkJsonObject::ckStringOf(jsonObject,"pets[i].name")
i = i + 1
Wend
; Output is:
; 0: jack
; 1: john
; 2: joe
CkJsonArray::ckDispose(jsonArray)
CkJsonObject::ckDispose(jsonObject)
ProcedureReturn
EndProcedure