Search code examples
c++arraysjsonjsoncpp

How do I make a jsoncpp array?


I'm stuck with jsoncpp. I would like to create an array like this:

"Cords": [{"x": 10, "y": 20}, {"x": 70, "y": 40}, {"x": 15, "y": 65}]

I managed to do the regular stuff with jsoncpp (see below) but I am stuck in this case of making a JSON array.

Json::Value event;

event["name"] = "Joe";
event["Direction"]["left"]["x"] = "1338";
event["Direction"]["right"]["x"] = "1337";

Edit:
I want to print it all within event.
I do not want to print cords separately.


Solution

  • You need to use the int overload of operator[] to define an array

    Json::Value coord(int x, int y)
    {
        Json::Value result;
        result["x"] = x;
        result["y"] = y;
        return result;    
    }
    
    void make_event(Json::Value & event)
    {
        Json::Value & coords = event["Cords"];
        coords[0] = coord(10, 20);
        coords[1] = coord(70, 40);
        coords[2] = coord(15, 65);
    }