Sample code for 30+ languages & platforms
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

PureBasic
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