Как создать массив с помощью 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, вы можете попробовать их.