Sample code for 30+ languages & platforms
C++

JSON: Access Array Values

See more JSON Examples

Demonstrates how to access values in a JSON array.

Chilkat C++ Downloads

C++
#include <CkJsonObject.h>
#include <CkJsonArray.h>

void ChilkatSample(void)
    {
    bool success = false;

    CkJsonObject json;

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

    success = json.Load(jsonStr);
    if (success != true) {
        std::cout << json.lastErrorText() << "\r\n";
        return;
    }

    // Get the "tags" array, which contains "home", 22, "green"
    CkJsonArray *tagsArray = json.ArrayOf("tags");
    if (json.get_LastMethodSuccess() == false) {
        std::cout << "tags member not found." << "\r\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 char *sValue = tagsArray->stringAt(i);

        std::cout << "[" << i << "] = " << sValue << "\r\n";

        int iValue = tagsArray->IntAt(i);
        std::cout << "[" << i << "] as integer = " << iValue << "\r\n";

    }

    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
    }