Sample code for 30+ languages & platforms
PowerBuilder

JSON: Nested Array

See more JSON Examples

Here we have a JSON object that contains nested arrays. This example demonstrates how to access the contents of the nested arrays.
{
 "numbers" : [ 
    ["even", 2, 4, 6, 8], 
    ["prime", 2, 3, 5, 7, 11, 13] 
  ] }

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Json
string ls_JsonStr
oleobject loo_OuterArray
integer li_NumArrays
integer i
oleobject loo_InnerArray
integer li_NumInnerItems
integer j

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

// This is the above JSON with whitespace chars removed (SPACE, TAB, CR, and LF chars).
// The presence of whitespace chars for pretty-printing makes no difference to the Load
// method. 
ls_JsonStr = "{ ~"numbers~" : [ [~"even~", 2, 4, 6, 8], [~"prime~", 2, 3, 5, 7, 11, 13] ] }"

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 value of the "numbers" object, which is an array that contains JSON arrays.
loo_OuterArray = loo_Json.ArrayOf("numbers")
if loo_Json.LastMethodSuccess = 0 then
    Write-Debug "numbers array not found."
    destroy loo_Json
    return
end if

li_NumArrays = loo_OuterArray.Size

for i = 0 to li_NumArrays - 1

    loo_InnerArray = loo_OuterArray.ArrayAt(i)

    // The first item in the innerArray is a string
    Write-Debug loo_InnerArray.StringAt(0) + ":"

    li_NumInnerItems = loo_InnerArray.Size

    for j = 1 to li_NumInnerItems - 1

        Write-Debug "  " + string(loo_InnerArray.IntAt(j))

    next

    destroy loo_InnerArray
next

destroy loo_OuterArray


destroy loo_Json