2
我正在使用卡萨布兰卡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
一些现有的值:
web::json::value temp = m_value; //m_value is an existing object
我只要我尝试与运营商[]
访问temp
得到json::exception
(使用我上面使用的两种方法)。
我该如何实现我所需要的?我已经搜索过,但我没有找到卡萨布兰卡特定的答案来解决我的问题。