I am trying to get the array from my JSON Stinrg defined in the main function. I have used libjson API for this, simple key value is easy to get so I am able to get the value of RootA but how about this array in ChildA. Please let me know
#include <iostream>
#include <libjson/libjson.h>
#include <stdio.h>
#include <string.h>
using namespace std;
char rootA[20];
int childB;
int *childInt;
void ParseJSON(JSONNODE *n) {
    if (n == NULL) {
        printf("Invalid JSON Node\n");
        return;
    }
    JSONNODE_ITERATOR i = json_begin(n);
    while (i != json_end(n)) {
        if (*i == NULL) {
            printf("Invalid JSON Node\n");
            return;
        }
        // recursively call ourselves to dig deeper into the tree
        if (json_type(*i) == JSON_ARRAY || json_type(*i) == JSON_NODE) {
            ParseJSON(*i);
        }
        // get the node name and value as a string
        json_char *node_name = json_name(*i);
        // find out where to store the values
        if (strcmp(node_name, "RootA") == 0) {
            json_char *node_value = json_as_string(*i);
            strcpy(rootA, node_value);
            cout << rootA<<"\n";
            json_free(node_value);
        } else if (strcmp(node_name, "ChildA") == 0) {
            JSONNODE *node_value = json_as_array(*i);
            childInt=reinterpret_cast<int *>(&node_value);
            cout << childInt[0]<<"\n";
            cout << childInt[1]<<"\n";
            json_free(node_value);
        } else if (strcmp(node_name, "ChildB") == 0) {
            childB = json_as_int(*i);
            cout << childB;
        }
        // cleanup and increment the iterator
        json_free(node_name);
        ++i;
    }
}
int main(int argc, char **argv) {
    char
            *json =
                    "{\"RootA\":\"Value in parent node\",\"ChildNode\":{\"ChildA\":[1,2],\"ChildB\":42}}";
    JSONNODE *n = json_parse(json);
    ParseJSON(n);
    json_delete(n);
    return 0;
}