rapidjson — изменить объект — добавить элемент / элемент

Как добавить элемент в объект quickjson, а затем распечатать его?

например добавить

 itemtwo => "world" ;

к этому объекту:

{"itemone":"hello"}

Я старался

 char buff[] = "{\"itemone\":\"hello\"}";
rapidjson::Document json_obj;
if(json_obj.Parse<0>(buff.c_str()).HasParseError() == false){
json_obj["itemtwo"].SetString("world");
rapidjson::StringBuffer strbuf;
rapidjson::Writer<rapidjson::StringBuffer> writer(strbuf);
json_obj.Accept(writer);
cout<<strbuf.GetString()<<endl;
}

Я получаю следующий вывод:

{"itemone":"hello"}

Смысл без изменений.
Что я делаю неправильно?

1

Решение

json_obj["itemtwo"] можно найти только участника с таким именем, которого не существует. Это не создает новую запись (как в std::map).

Чтобы манипулировать объектами, используйте AddMember() и другие связанные функции-члены, например,

json_obj.AddMember("itemone", "hello", json_obj.GetAllocator());

Вы можете обратиться к быстрое руководство пользователя и / или tutorial.cpp в пакете.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector