Sample code for 30+ languages & platforms
C

Load a JSON Array

See more JSON Examples

The Chilkat JSON API requires the top-level JSON to be an object. Therefore, to load an array requires that it first be wrapped as an object.

Chilkat C Downloads

C
#include <C_CkStringBuilder.h>
#include <C_CkJsonObject.h>
#include <C_CkJsonArray.h>

void ChilkatSample(void)
    {
    BOOL success;
    const char *jsonArrayStr;
    HCkStringBuilder sbJson;
    HCkJsonObject json;
    HCkJsonArray jArray;
    HCkJsonObject jObjId;

    success = FALSE;

    // Imagine we want to load this JSON array for parsing:
    jsonArrayStr = "[{\"id\":200},{\"id\":196}]";

    // First wrap it in a JSON object by prepending "{ "array":" and appending "}"
    sbJson = CkStringBuilder_Create();
    CkStringBuilder_Append(sbJson,"{\"array\":");
    CkStringBuilder_Append(sbJson,jsonArrayStr);
    CkStringBuilder_Append(sbJson,"}");

    json = CkJsonObject_Create();
    CkJsonObject_Load(json,CkStringBuilder_getAsString(sbJson));

    // Now we can get the JSON array
    jArray = CkJsonObject_ArrayAt(json,0);

    // Do what you want with the JSON array...
    // For example:
    jObjId = CkJsonArray_ObjectAt(jArray,0);
    printf("%d\n",CkJsonObject_IntOf(jObjId,"id"));
    CkJsonObject_Dispose(jObjId);

    CkJsonArray_Dispose(jArray);


    CkStringBuilder_Dispose(sbJson);
    CkJsonObject_Dispose(json);

    }