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 <CkJsonObjectW.h>
#include <CkJsonArrayW.h>

void ChilkatSample(void)
    {
    bool success = false;

    CkJsonObjectW json;

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

    success = json.Load(jsonStr);
    if (success != true) {
        wprintf(L"%s\n",json.lastErrorText());
        return;
    }

    // Get the "tags" array, which contains "home", 22, "green"
    CkJsonArrayW *tagsArray = json.ArrayOf(L"tags");
    if (json.get_LastMethodSuccess() == false) {
        wprintf(L"tags member not found.\n");
        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

    int arraySize = tagsArray->get_Size();
    int i;
    for (i = 0; i <= arraySize - 1; i++) {

        const wchar_t *sValue = tagsArray->stringAt(i);

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

        int iValue = tagsArray->IntAt(i);
        wprintf(L"[%d] as integer = %d\n",i,iValue);

    }

    delete 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
    }