Sample code for 30+ languages & platforms
PureBasic

Understanding JSON Array vs JSON Object

See more JSON Examples

This example explains the difference between a JSON Array and a JSON Object. A JSON Array begins with "[" and ends with "]", whereas a JSON Object begins with "{" and ends with "}".

Elements contained in a JSON array are accessed by index, whereas elements in a JSON object are typically accessed by name (but can also be accessed by index).

Chilkat PureBasic Downloads

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

Procedure ChilkatExample()

    success.i = 0

    ; A JSON array should be loaded into a Chilkat JSON array,
    ; whereas a JSON object should be loaded into a Chilkat JSON object.

    ; A JSON array may contain objects, and a JSON object may contains arrays, but
    ; it is the top-level (outermost) element that defines whether the JSON
    ; document is an array or an object.
    ; An array begins and ends with "[" ... "]"
    ; An object begins and ends with "{" ... "}"

    ; For example, an array containing 2 objects:
    strJsonArray.s = "[ { " + Chr(34) + "name" + Chr(34) + ": " + Chr(34) + "Bill" + Chr(34) + " }, { " + Chr(34) + "name" + Chr(34) + ": " + Chr(34) + "Ted" + Chr(34) + " } ]"

    ; Load it into a JSON array.
    jsonA.i = CkJsonArray::ckCreate()
    If jsonA.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkJsonArray::ckLoad(jsonA,strJsonArray)
    Debug "number of array elements: " + Str(CkJsonArray::ckSize(jsonA))

    ; This is an object containing an array:
    strJsonObj.s = "{ " + Chr(34) + "characters" + Chr(34) + ": [ " + Chr(34) + "Bill" + Chr(34) + ", " + Chr(34) + "Ted" + Chr(34) + " ] }"

    ; Load it into a JSON object.
    jsonO.i = CkJsonObject::ckCreate()
    If jsonO.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkJsonObject::ckLoad(jsonO,strJsonObj)
    Debug "number of object members: " + Str(CkJsonObject::ckSize(jsonO))


    CkJsonArray::ckDispose(jsonA)
    CkJsonObject::ckDispose(jsonO)


    ProcedureReturn
EndProcedure