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