сравнение двух std :: string conts, возвращаемых из функций (два json-spirit get_str () s) 1-liner

я использую 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 строки?

0

Решение

Просто угадаю здесь: я думаю, что ваш источник 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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]