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 に答える