Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loJson
LOCAL lcJsonStr
LOCAL loOuterArray
LOCAL lnNumArrays
LOCAL i
LOCAL loInnerArray
LOCAL lnNumInnerItems
LOCAL j

lnSuccess = 0

loJson = CreateObject('Chilkat.JsonObject')

* 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. 
lcJsonStr = '{ "numbers" : [ ["even", 2, 4, 6, 8], ["prime", 2, 3, 5, 7, 11, 13] ] }'

lnSuccess = loJson.Load(lcJsonStr)
IF (lnSuccess <> 1) THEN
    ? loJson.LastErrorText
    RELEASE loJson
    CANCEL
ENDIF

* Get the value of the "numbers" object, which is an array that contains JSON arrays.
loOuterArray = loJson.ArrayOf("numbers")
IF (loJson.LastMethodSuccess = 0) THEN
    ? "numbers array not found."
    RELEASE loJson
    CANCEL
ENDIF

lnNumArrays = loOuterArray.Size

FOR i = 0 TO lnNumArrays - 1

    loInnerArray = loOuterArray.ArrayAt(i)

    * The first item in the innerArray is a string
    ? loInnerArray.StringAt(0) + ":"

    lnNumInnerItems = loInnerArray.Size

    FOR j = 1 TO lnNumInnerItems - 1

        ? "  " + STR(loInnerArray.IntAt(j))

    NEXT

    RELEASE loInnerArray
NEXT

RELEASE loOuterArray

RELEASE loJson