Sample code for 30+ languages & platforms
Unicode C

JSON: Access Array Values

See more JSON Examples

Demonstrates how to access values in a JSON array.

Chilkat Unicode C Downloads

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

void ChilkatSample(void)
    {
    BOOL success;
    HCkJsonObjectW json;
    const wchar_t *jsonStr;
    HCkJsonArrayW tagsArray;
    int arraySize;
    int i;
    const wchar_t *sValue;
    int iValue;

    success = FALSE;

    json = CkJsonObjectW_Create();

    jsonStr = L"{ \"id\": 1, \"name\": \"A green door\", \"tags\": [\"home\", 22, \"green\"], \"price\": 125 }";

    success = CkJsonObjectW_Load(json,jsonStr);
    if (success != TRUE) {
        wprintf(L"%s\n",CkJsonObjectW_lastErrorText(json));
        CkJsonObjectW_Dispose(json);
        return;
    }

    // Get the "tags" array, which contains "home", 22, "green"
    tagsArray = CkJsonObjectW_ArrayOf(json,L"tags");
    if (CkJsonObjectW_getLastMethodSuccess(json) == FALSE) {
        wprintf(L"tags member not found.\n");
        CkJsonObjectW_Dispose(json);
        return;
    }

    // Get the value at each array index. 
    // Output will be:
    // [0] = home
    // [0] as integer = 0
    // [1] = 22
    // [1] as integer = 22
    // [2] = green
    // [2] as integer = 0

    arraySize = CkJsonArrayW_getSize(tagsArray);

    for (i = 0; i <= arraySize - 1; i++) {

        sValue = CkJsonArrayW_stringAt(tagsArray,i);

        wprintf(L"[%d] = %s\n",i,sValue);

        iValue = CkJsonArrayW_IntAt(tagsArray,i);
        wprintf(L"[%d] as integer = %d\n",i,iValue);

    }

    CkJsonArrayW_Dispose(tagsArray);

    // Note: The StringAt method returns the value as a string regardless of the type.

    // The IntAt method returns the value as an integer.  If the value does not convert to 
    // an integer, then 0 is returned


    CkJsonObjectW_Dispose(json);

    }