Подтвердить что ты не робот

JsonparseException Недопустимый символ без кавычек ((CTRL- CHAR, код 10)

Я пытаюсь использовать org.apache.httpcomponents для использования rest api, который будет отправлять данные формата json в api.

пока я получаю исключение

Вызвано: com.fasterxml.jackson.core.JsonParseException: незаконным неупорядоченный символ ((CTRL- CHAR, код 10)): должен быть экранирован с использованием обратная косая черта, которая будет включена в строку.

В строке json включена аргумента ctrl-char.

Есть ли способ заменить это.или какое-то другое решение?

спасибо!

4b9b3361

Ответ 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-символы или разрывы строк и т.д. исправить их, и все готово!