Я использую библиотеку RAB Casablanca C++ для работы с данными JSON. Это код, который я использую для создания нового объекта JSON с нуля, и добавьте пары ключей-значений.Как добавить новые пары ключ-значение в существующий объект web :: json :: value с использованием Casablanca?
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
Я получаю json::exception
как только я пытаюсь получить доступ temp
с оператором []
(с использованием либо из двух методов, которые я использую выше).
Как я могу достичь того, что мне нужно? Я искал SO, но я не нашел конкретных ответов Касабланки на мой вопрос.