【问题标题】:rapidjson - change object - add element/itemrapidjson - 更改对象 - 添加元素/项目
【发布时间】:2023-03-17 23:13:01
【问题描述】:

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

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

【问题讨论】:

    标签: c++ json element add rapidjson


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多