Я не уверен, будет ли это конкретной вещью с jsoncpp или общей парадигмой с тем, как заставить библиотеку C++ вести себя лучше. В принципе, я получаю такой след:
imagegeneratormanager.tsk: src/lib_json/json_value.cpp:1176: const Json::Value& Json::Value::operator[](const char*) const: Assertion `type_ == nullValue || type_ == objectValue' failed.
Это происходит, когда вход плохой. Когда входные данные, поступающие из другого моего приложения через memcached, оказываются плохими, я хотел бы справиться с этой ошибкой. Знаете, грациозно. Возможно, что-то вроде «ошибка: ввод для элемента 15006 плох», идущий в журнал. Не завершая работу всей задачи обработки строк JSON.
Это просто плохо написанная библиотека или ее можно настроить более тонко?
Правка: вот код вызова:
Json::Value root;
Json::Reader reader;
succeeded = reader.parse(jsonString, root);
if(!succeeded) {
throw std::runtime_error(std::string("Failed to parse JSON for key ") + emailInfoKey.str());
}
std::string userEmail = root.get("userId", "").asString();
std::string bodyFilePath = root.get("bodyFilePath", "").asString();
std::string msgId = root.get("msgId", "").asString();