如何将成员添加到 rapidjson 对象然后打印它?
例如添加
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"}
表示没有变化。 我做错了什么?
最佳答案
json_obj["itemtwo"]
只能找到具有该名称的成员,该名称不存在。它不会创建新条目(如在 std::map
中)。
要操作对象,请使用 AddMember()
和其他相关成员函数,例如
json_obj.AddMember("itemone", "hello", json_obj.GetAllocator());
可以引用rapidjson user guide和/或包中的 tutorial.cpp。
关于c++ - rapidjson - 更改对象 - 添加元素/项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15798483/