Sample code for 30+ languages & platforms
PureBasic

Create a JSON Array of Objects

See more JSON Examples

Demonstrates how to create a JSON array of objects.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkJsonArray.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

    arr.i = CkJsonArray::ckCreate()
    If arr.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    obj.i = CkJsonObject::ckCreate()
    If obj.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Create a new and empty JSON object in the 1st position of the JSON array 
    ; and return the reference in the last argument.
    CkJsonArray::ckAddObjectAt2(arr,0,obj)
    CkJsonObject::ckUpdateString(obj,"Name","Otto")
    CkJsonObject::ckUpdateInt(obj,"Age",29)
    CkJsonObject::ckUpdateBool(obj,"Married",0)

    ; Create a new and empty JSON object in the 2nd position of the JSON array 
    ; and return the reference in the last argument.
    CkJsonArray::ckAddObjectAt2(arr,1,obj)
    CkJsonObject::ckUpdateString(obj,"Name","Connor")
    CkJsonObject::ckUpdateInt(obj,"Age",43)
    CkJsonObject::ckUpdateBool(obj,"Married",1)

    ; Create a new and empty JSON object in the 3rd position of the JSON array 
    ; and return the reference in the last argument.
    CkJsonArray::ckAddObjectAt2(arr,2,obj)
    CkJsonObject::ckUpdateString(obj,"Name","Ramona")
    CkJsonObject::ckUpdateInt(obj,"Age",34)
    CkJsonObject::ckUpdateBool(obj,"Married",1)

    ; Examine what we have:
    CkJsonArray::setCkEmitCompact(arr, 0)
    Debug CkJsonArray::ckEmit(arr)

    ; The output is:

    ; [
    ;   {
    ;     "Name": "Otto",
    ;     "Age": 29,
    ;     "Married": false
    ;   },
    ;   {
    ;     "Name": "Connor",
    ;     "Age": 43,
    ;     "Married": true
    ;   },
    ;   {
    ;     "Name": "Ramona",
    ;     "Age": 34,
    ;     "Married": true
    ;   }
    ; ]


    CkJsonArray::ckDispose(arr)
    CkJsonObject::ckDispose(obj)


    ProcedureReturn
EndProcedure