Как создать массив с помощью libjson?

Я хочу сделать массив с libJSON JSONNode, Я пробовал следующее, но это не работает:

JSONNode array;
JSONNode foo("word", "foo");
JSONNode bar("word", "bar");
array.push_back(foo);
array.push_back(bar);

Это приводит к:

{ 
    "word": "foo", 
    "word": "bar"
}

Что я хочу это:

[
    {"word": "foo"},
    {"word": "bar"}
]

Мне ясно, что я не указываю, что я хочу массив. Дело в том, что я обыскал библиотеку и немного погуглил, но не могу это сделать. Кто-нибудь может мне помочь с этим?

(Sidenote: я хотел добавить тег "libjson", но его пока не существует.)

1 ответ

Решение

Вам нужно указать, что вы создаете массив и сложные узлы:

JSONNode array(JSON_ARRAY);
JSONNode foo(JSON_NODE);
JSONNode bar(JSON_NODE);

foo.push_back(JSONNode("word", "foo"));
bar.push_back(JSONNode("word", "bar"));

array.push_back(foo);
array.push_back(bar);

См. Документацию "Начало работы" в libjson-VERSION.zip для некоторых основных примеров.

Примечание: я лично нашел, что с libjson надоело работать, а документации очень не хватает. В моих собственных проектах я использую JsonCpp или (чаще) Jansson в качестве своего C/C++ JSON API. Если вы не привязаны к libjson, вы можете попробовать их.

Другие вопросы по тегам