Sample code for 30+ languages & platforms
PureBasic

Build JSON with Mixture of Arrays and Objects

See more JSON Examples

Another example showing how to build JSON containing a mixture of arrays and objects.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    ; We want to build the following JSON:

    ; { 
    ;   "accountEnabled": true,
    ;   "assignedLicenses": [
    ;     { 
    ;       "disabledPlans": [ "bea13e0c-3828-4daa-a392-28af7ff61a0f" ],
    ;       "skuId": "skuId-value"
    ;     }
    ;   ],
    ;   "assignedPlans": [
    ;     { 
    ;       "assignedDateTime": "datetime-value",
    ;       "capabilityStatus": "capabilityStatus-value",
    ;       "service": "service-value",
    ;       "servicePlanId": "bea13e0c-3828-4daa-a392-28af7ff61a0f"
    ;     }
    ;   ],
    ;   "businessPhones": [
    ;     "businessPhones-value"
    ;   ],
    ;   "city": "city-value",
    ;   "companyName": "companyName-value"
    ; }

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

    CkJsonObject::ckUpdateBool(json,"accountEnabled",1)
    CkJsonObject::setCkI(json, 0)
    CkJsonObject::ckUpdateString(json,"assignedLicenses[i].disabledPlans[0]","bea13e0c-3828-4daa-a392-28af7ff61a0f")
    CkJsonObject::ckUpdateString(json,"assignedLicenses[i].skuId","skuId-value")
    CkJsonObject::ckUpdateString(json,"assignedPlans[i].assignedDateTime","datetime-value")
    CkJsonObject::ckUpdateString(json,"assignedPlans[i].capabilityStatus","capabilityStatus-value")
    CkJsonObject::ckUpdateString(json,"assignedPlans[i].service","service-value")
    CkJsonObject::ckUpdateString(json,"assignedPlans[i].servicePlanId","bea13e0c-3828-4daa-a392-28af7ff61a0f")
    CkJsonObject::ckUpdateString(json,"businessPhones[i]","businessPhones-value")
    CkJsonObject::ckUpdateString(json,"city","city-value")
    CkJsonObject::ckUpdateString(json,"companyName","companyName-value")

    CkJsonObject::setCkEmitCompact(json, 0)
    Debug CkJsonObject::ckEmit(json)

    ; Output:

    ; { 
    ;   "accountEnabled": true,
    ;   "assignedLicenses": [
    ;     { 
    ;       "disabledPlans": [
    ;         "bea13e0c-3828-4daa-a392-28af7ff61a0f"
    ;       ],
    ;       "skuId": "skuId-value"
    ;     }
    ;   ],
    ;   "assignedPlans": [
    ;     { 
    ;       "assignedDateTime": "datetime-value",
    ;       "capabilityStatus": "capabilityStatus-value",
    ;       "service": "service-value",
    ;       "servicePlanId": "bea13e0c-3828-4daa-a392-28af7ff61a0f"
    ;     }
    ;   ],
    ;   "businessPhones": [
    ;     "businessPhones-value"
    ;   ],
    ;   "city": "city-value",
    ;   "companyName": "companyName-value"
    ; }


    CkJsonObject::ckDispose(json)


    ProcedureReturn
EndProcedure