私はCasablanca C++ RESTライブラリを使用してJSONデータを処理しています。これは、最初から新しいJSONオブジェクトを作成し、キーと値のペアを追加するために使用しているコードです。カサブランカを使用して既存のweb :: json :: valueオブジェクトに新しいキーと値のペアを追加する方法は?
web::json::value temp;
// 1 - to add literal key-value pairs
temp[L"key1"] = web::json::value::string(U("value1"));
// 2 - to add key-value pairs of variables whose values I don't know, and are passed as std::string
temp[utility::conversions::to_string_t(key2)] = web::json::value::string(utility::conversions::to_string_t(value2));
これは完全にうまく動作し、新しいオブジェクトに使用して、必要なだけ多くのキーと値のペアを追加できます。
私の問題は、私は、既存のweb::json::value
対象に、代わりにゼロから新しいものを作成するのでアペンドにこれらのキーを必要とするということです。私は既存のオブジェクトの構造を知らないので、コードはキーに対応する値を更新するか(存在する場合)、または新しいキーと値のペアを(存在しない場合)追加する必要があります。
私はこの行を使用して、いくつかの既存の値にtemp
を割り当てることを除いて同じコード、試してみてください。私はできるだけ早く私は(どちらか使用してオペレータ[]
とtemp
にアクセスしようとしてjson::exception
を取得
web::json::value temp = m_value; //m_value is an existing object
を私が上で使用した2つの方法のうちの1つ)。
私は必要なものをどのように達成できますか?私はSOを検索しましたが、私の質問に対するカサブランカ固有の答えは見つかりませんでした。