如何将成员添加到rapidjson对象然后打印?
例如add
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"}
意思是没有变化。 我做错了什么?
答案 0 :(得分:2)
json_obj["itemtwo"]
只能找到具有该名称的成员,该成员不存在。它不会创建新条目(如std::map
)。
要操纵对象,请使用AddMember()
和其他相关成员函数,例如
json_obj.AddMember("itemone", "hello", json_obj.GetAllocator());
您可以参考包中的rapidjson user guide和/或tutorial.cpp。