PureBasic
PureBasic
JSON: Access Array Values
See more JSON Examples
Demonstrates how to access values in a JSON array.Chilkat PureBasic Downloads
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