Sample code for 30+ languages & platforms
Unicode C

Loading and Parsing a JSON Array

See more JSON Examples

A JSON array is JSON that begins with "[" and ends with "]". For example, this is a JSON array that contains 3 JSON objects.
[{"name":"jack"},{"name":"john"},{"name":"joe"}]
A JSON object, however, is JSON that begins with "{" and ends with "}". For example, this JSON is an object that contains an array.
{"pets":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}
This example shows how loading a JSON array is different than loading a JSON object.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkJsonArrayW.h>
#include <C_CkJsonObjectW.h>

void ChilkatSample(void)
    {
    const wchar_t *strJsonArray;
    const wchar_t *strJsonObject;
    HCkJsonArrayW jsonArray;
    int i;
    HCkJsonObjectW jsonObj;
    HCkJsonObjectW jsonObject;
    int numPets;

    strJsonArray = L"[{\"name\":\"jack\"},{\"name\":\"john\"},{\"name\":\"joe\"}]";

    strJsonObject = L"{\"pets\":[{\"name\":\"jack\"},{\"name\":\"john\"},{\"name\":\"joe\"}]}";

    // A JSON array must be loaded using JsonArray:
    jsonArray = CkJsonArrayW_Create();
    CkJsonArrayW_Load(jsonArray,strJsonArray);

    // Examine the values:
    i = 0;
    while (i < CkJsonArrayW_getSize(jsonArray)) {
        jsonObj = CkJsonArrayW_ObjectAt(jsonArray,i);
        wprintf(L"%d: %s\n",i,CkJsonObjectW_stringOf(jsonObj,L"name"));
        CkJsonObjectW_Dispose(jsonObj);
        i = i + 1;
    }

    // Output is:

    // 	0: jack
    // 	1: john
    // 	2: joe

    // A JSON object must be loaded using JsonObject
    jsonObject = CkJsonObjectW_Create();
    CkJsonObjectW_Load(jsonObject,strJsonObject);

    // Examine the values:
    i = 0;
    numPets = CkJsonObjectW_SizeOfArray(jsonObject,L"pets");
    while (i < numPets) {
        CkJsonObjectW_putI(jsonObject,i);
        wprintf(L"%d: %s\n",i,CkJsonObjectW_stringOf(jsonObject,L"pets[i].name"));
        i = i + 1;
    }

    // Output is:

    // 	0: jack
    // 	1: john
    // 	2: joe


    CkJsonArrayW_Dispose(jsonArray);
    CkJsonObjectW_Dispose(jsonObject);

    }