1

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

没有变化的意思。我究竟做错了什么?

4

1 回答 1

4

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

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

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

您可以参考rapidjson 用户指南和/或包中的 tutorial.cpp。

于 2013-04-24T15:41:53.087 回答