rapidjson - 更改对象 - 添加元素/项目

时间:2013-04-03 21:28:52

标签: c++ json element add rapidjson

如何将成员添加到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"}  

意思是没有变化。 我做错了什么?

1 个答案:

答案 0 :(得分:2)

json_obj["itemtwo"]只能找到具有该名称的成员,该成员不存在。它不会创建新条目(如std::map)。

要操纵对象,请使用AddMember()和其他相关成员函数,例如

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

您可以参考包中的rapidjson user guide和/或tutorial.cpp。