PowerBuilder
PowerBuilder
JSON: Access Array Values
See more JSON Examples
Demonstrates how to access values in a JSON array.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Json
string ls_JsonStr
oleobject loo_TagsArray
integer li_ArraySize
integer i
string ls_SValue
integer li_IValue
li_Success = 0
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
if li_rc < 0 then
destroy loo_Json
MessageBox("Error","Connecting to COM object failed")
return
end if
ls_JsonStr = "{ ~"id~": 1, ~"name~": ~"A green door~", ~"tags~": [~"home~", 22, ~"green~"], ~"price~": 125 }"
li_Success = loo_Json.Load(ls_JsonStr)
if li_Success <> 1 then
Write-Debug loo_Json.LastErrorText
destroy loo_Json
return
end if
// Get the "tags" array, which contains "home", 22, "green"
loo_TagsArray = loo_Json.ArrayOf("tags")
if loo_Json.LastMethodSuccess = 0 then
Write-Debug "tags member not found."
destroy loo_Json
return
end if
// 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
li_ArraySize = loo_TagsArray.Size
for i = 0 to li_ArraySize - 1
ls_SValue = loo_TagsArray.StringAt(i)
Write-Debug "[" + string(i) + "] = " + ls_SValue
li_IValue = loo_TagsArray.IntAt(i)
Write-Debug "[" + string(i) + "] as integer = " + string(li_IValue)
next
destroy loo_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
destroy loo_Json