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
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