JsonparseException Недопустимый символ без кавычек ((CTRL- CHAR, код 10)
Я пытаюсь использовать org.apache.httpcomponents
для использования rest api, который будет отправлять данные формата json в api.
пока я получаю исключение
Вызвано: com.fasterxml.jackson.core.JsonParseException: незаконным неупорядоченный символ ((CTRL- CHAR, код 10)): должен быть экранирован с использованием обратная косая черта, которая будет включена в строку.
В строке json включена аргумента ctrl-char
.
Есть ли способ заменить это.или какое-то другое решение?
спасибо!
Ответы
Ответ 1
Это может произойти, если в строковом литерале JSON имеется новая строка (или другой управляющий символ).
{"foo": "bar
baz"}
Если вы создаете данные, замените фактические строки новой строки экранированными "\\n"
при создании строковых литералов.
{"foo": "bar\nbaz"}
Ответ 2
Использование
mapper.configure(Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
См. javadoc:
/**
* Feature that determines whether parser will allow
* JSON Strings to contain unquoted control characters
* (ASCII characters with value less than 32, including
* tab and line feed characters) or not.
* If feature is set false, an exception is thrown if such a
* character is encountered.
*<p>
* Since JSON specification requires quoting for all control characters,
* this is a non-standard feature, and as such disabled by default.
*/
Ответ 3
Я бы рекомендовал вам использовать текстовый редактор, такой как Vim, чтобы узнать, есть ли какие-либо (невидимые) специальные или escape-символы, вызывающие эту проблему.
Или, если вы используете окна, это даже просто... просто скопируйте код в блокнот Windows, и он, скорее всего, покажет любые невидимые нежелательные escape-символы или разрывы строк и т.д. исправить их, и все готово!