Sample code for 30+ languages & platforms
PureBasic

JSON Iterate Members

See more JSON Examples

Demonstrates how to loop over the immediate members of a JSON object.

Chilkat PureBasic Downloads

PureBasic
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) + ", " + 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

    numMembers.i = CkJsonObject::ckSize(json)
    i.i
    For i = 0 To numMembers - 1

        name.s = CkJsonObject::ckNameAt(json,i)
        value.s = CkJsonObject::ckStringAt(json,i)

        Debug name + ": " + value

        iValue.i = CkJsonObject::ckIntAt(json,i)
        Debug name + " as integer: " + Str(iValue)

    Next

    ; Note: The StringAt method returns the value as a string regardless of the type.
    ; If the value is a JSON array (such as for ["home", "green"]), then the JSON encoding
    ; of the entire array is returned.

    ; 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