2016-07-31 17 views
2

、 私は次のコードを使用してJSONメッセージを構築している:私はいくつかの条件に基づいて、異なる属性と値のペアが含まれているこのjson11オブジェクトを持つようにしたい場合は既存のjson11オブジェクト(C++)に属性値ペアを追加する方法はありますか?例えば

json11::Json my_json = json11::Json::object{ 
    { "key_val1", val1}, 
    { "key_val2", val2}, 
    { "key_val3", val3}, 
    { "key_val4", val4 } 
}; 

std::string message = my_json.dump(); 

をしかし、私は繰り返してきました同じコードを複数回

属性値のペアを既存のjson11オブジェクトに追加する方法はありますか? 私は基本オブジェクトを構築し、必要に応じて必要な属性を追加できます。

答えて

3

はい、可能です。

json11::Json::object my_json = json11::Json::object{ 
    { "key_val1", val1}, 
    { "key_val2", val2}, 
    { "key_val3", val3}, 
    { "key_val4", val4 } 
}; 

my_json["newattribute1"] = "newValue1"; 
my_json["newattribute2"] = 2; 

json11::Json json_final = json11::Json{ my_json }; 
std::string message = json_final .dump(); 

my_jsonはjson11 :: Jsonのインスタンスです。私の場合、my_jsonはjson11 :: Json :: objectのインスタンスです。

json11 :: Json :: objectはもともとstd :: mapです。

関連する問題