Sample code for 30+ languages & platforms
PowerBuilder

JSON: Access Array Values

See more JSON Examples

Demonstrates how to access values in a JSON array.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
long li_Success
oleobject loo_Json
string ls_JsonStr
oleobject loo_TagsArray
long li_ArraySize
long i
string ls_SValue
long 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