Sample code for 30+ languages & platforms
Unicode C

Iterate over JSON Array containing JSON Objects

See more JSON Examples

Demonstrates how to load a JSON array and iterate over the JSON objects.

Chilkat Unicode C Downloads

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

void ChilkatSample(void)
    {
    BOOL success;
    HCkStringBuilderW sbJsonArray;
    HCkJsonArrayW arr;
    int tagId;
    const wchar_t *tagDescription;
    BOOL isPublic;
    int i;
    int count;
    HCkJsonObjectW obj;

    success = FALSE;

    // Loads the following JSON array and iterates over the objects:
    // 
    // [
    // {"tagId":95,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":98,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":101,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":104,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":107,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":110,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":113,"tagDescription":"hola 1","isPublic":true},
    // {"tagId":114,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":111,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":108,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":105,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":102,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":99,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":96,"tagDescription":"hola 2","isPublic":true},
    // {"tagId":97,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":100,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":103,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":106,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":109,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":112,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":115,"tagDescription":"hola 3","isPublic":true},
    // {"tagId":93,"tagDescription":"new tag","isPublic":true},
    // {"tagId":94,"tagDescription":"new tag","isPublic":true},
    // {"tagId":89,"tagDescription":"tag 1","isPublic":true},
    // {"tagId":90,"tagDescription":"tag 2","isPublic":true},
    // {"tagId":91,"tagDescription":"tag private 1","isPublic":false},
    // {"tagId":92,"tagDescription":"tag private 2","isPublic":false}
    // ]

    // Load a file containing the above JSON..
    sbJsonArray = CkStringBuilderW_Create();
    success = CkStringBuilderW_LoadFile(sbJsonArray,L"qa_data/json/arraySample.json",L"utf-8");

    arr = CkJsonArrayW_Create();
    success = CkJsonArrayW_LoadSb(arr,sbJsonArray);

    i = 0;
    count = CkJsonArrayW_getSize(arr);

    while (i < count) {
        obj = CkJsonArrayW_ObjectAt(arr,i);
        tagId = CkJsonObjectW_IntOf(obj,L"tagId");
        tagDescription = CkJsonObjectW_stringOf(obj,L"tagDescription");
        isPublic = CkJsonObjectW_BoolOf(obj,L"isPublic");

        wprintf(L"tagId: %d\n",tagId);
        wprintf(L"tagDescription: %s\n",tagDescription);
        wprintf(L"isPublic: %d\n",isPublic);
        wprintf(L"--\n");

        CkJsonObjectW_Dispose(obj);
        i = i + 1;
    }



    CkStringBuilderW_Dispose(sbJsonArray);
    CkJsonArrayW_Dispose(arr);

    }