Sample code for 30+ languages & platforms
PureBasic

JSON: Access Array Values

See more JSON Examples

Demonstrates how to access values in a JSON array.

Chilkat PureBasic Downloads

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

Procedure ChilkatExample()

    success.i = 0

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

    jsonStr.s = "{ " + Chr(34) + "id" + Chr(34) + ": 1, " + Chr(34) + "name" + Chr(34) + ": " + Chr(34) + "A green door" + Chr(34) + ", " + Chr(34) + "tags" + Chr(34) + ": [" + Chr(34) + "home" + Chr(34) + ", 22, " + Chr(34) + "green" + Chr(34) + "], " + Chr(34) + "price" + Chr(34) + ": 125 }"

    success = CkJsonObject::ckLoad(json,jsonStr)
    If success <> 1
        Debug CkJsonObject::ckLastErrorText(json)
        CkJsonObject::ckDispose(json)
        ProcedureReturn
    EndIf

    ; Get the "tags" array, which contains "home", 22, "green"
    tagsArray.i = CkJsonObject::ckArrayOf(json,"tags")
    If CkJsonObject::ckLastMethodSuccess(json) = 0
        Debug "tags member not found."
        CkJsonObject::ckDispose(json)
        ProcedureReturn
    EndIf

    ; Get the value at each array index. 
    ; Output will be:
    ; [0] = home
    ; [0] as integer = 0
    ; [1] = 22
    ; [1] as integer = 22
    ; [2] = green
    ; [2] as integer = 0

    arraySize.i = CkJsonArray::ckSize(tagsArray)
    i.i
    For i = 0 To arraySize - 1

        sValue.s = CkJsonArray::ckStringAt(tagsArray,i)

        Debug "[" + Str(i) + "] = " + sValue

        iValue.i = CkJsonArray::ckIntAt(tagsArray,i)
        Debug "[" + Str(i) + "] as integer = " + Str(iValue)

    Next

    CkJsonArray::ckDispose(tagsArray)

    ; Note: The StringAt method returns the value as a string regardless of the type.

    ; The IntAt method returns the value as an integer.  If the value does not convert to 
    ; an integer, then 0 is returned


    CkJsonObject::ckDispose(json)


    ProcedureReturn
EndProcedure