【发布时间】:2016-12-22 10:58:55
【问题描述】:
我正在使用 Casablanca C++ REST 库来处理 JSON 数据。这是我用来从头开始创建新 JSON 对象并添加键值对的代码。
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(使用我上面使用的两种方法之一)。
我怎样才能达到我的需要?我在 SO 上进行了搜索,但没有找到针对我的问题的卡萨布兰卡特定答案。
【问题讨论】:
标签: c++ json casablanca