я использую JSON-дух разобрать JSON для моего WS ++ сервер.
Я сравниваю строки для проверки процесса регистрации, подтвержденных входов в систему, электронной почты, пароля и т. Д.
JSON-духа get_str()
возвращается const std::string&
,
я пробовал ==
, compare
, четное strcmp
, Все вылетает программа с terminate called after throwing an instance of 'std::runtime_error' what(): value type is 0 not 2
когда я пытаюсь сравнить возвращаемую функцию с «1 вкладышем» (все в if
утверждение сравнения).
Может ли эта функция быть возвращена с использованием 1 строки?
Просто угадаю здесь: я думаю, что ваш источник json
не дает вам то, что вы думаете, это дает вам с точки зрения типа значения.
Я не знаком с JSON-Spirit, но ваша ссылка имеет этот пункт:
You obtain the Value's type by calling Value::type(). You can then call the appropriate getter function. Generally, you will know a file's format, so you will know what type the JSON values should have. A std::runtime_error exception is thrown if you try to get a value of the wrong type, for example, if you try to extract a string from a value containing an integer.
Это звучит очень похоже на ошибку, которую вы видите. Я предполагаю, что json-spirit думает, что твои струны совсем не струны. Когда вы пытаетесь позвонить get_str()
для чего-то, что не является строкой (независимо от того, что определено как тип «0»), это вызывает исключение.
РЕДАКТИРОВАТЬ: ковыряться в Источник Json-Spirit, тип «0» равен NULL_TYPE
Других решений пока нет …