JsonParseException : 따옴표가 없는 잘못된 문자(CTRL-CHAR, 코드 10)
사용하려고 합니다.org.apache.httpcomponents
Rest API를 사용하여 JSON 포맷 데이터를 API에 게시합니다.
다음과 같은 예외가 있습니다.
원인: com.fasterxml.jackson.core.JsonParse Exception:따옴표로 둘러싸지 않은 잘못된 문자((CTRL-CHAR, 코드 10): 문자열에 포함하려면 백슬래시를 사용하여 이스케이프해야 합니다.
그 이유는ctrl-char
는 JSON 문자열에 포함됩니다.
이 솔루션이나 다른 솔루션을 대체할 수 있는 방법이 있습니까?
이 문제는 JSON 문자열 리터럴에 줄바꿈(또는 다른 제어 문자)이 있는 경우에 발생할 수 있습니다.
{"foo": "bar
baz"}
데이터를 생성하는 경우 실제 새 라인을 이스케이프된 라인으로 대체합니다."\\n"
스트링 리터럴을 작성할 때 사용합니다.
{"foo": "bar\nbaz"}
사용.
mapper.configure(
JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS.mappedFeature(),
true
);
javadoc 참조:
/**
* Feature that determines whether parser will allow
* JSON Strings to contain unescaped 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.
*/
오래된 옵션JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS
는 2.10 이후 폐지되었습니다.
github 스레드도 참조해 주세요.
Salesforce 플랫폼에서는 이 에러가 발생합니다./
, 해결책은 이것들을 탈출하는 것입니다.//
.
이 에러는, JSON 데이터를 서버에 송신할 때에 발생합니다.문자열에 /n을 사용하여 새 행 문자를 추가하려고 할 수 있습니다.
/n 앞에 /를 추가하면 동작합니다.새 행 문자를 이스케이프해야 합니다.
"Hello there //n start coding"
결과는 다음과 같습니다.
Hello there
start coding
JsonParseException : 따옴표가 없는 잘못된 문자(CTRL-CHAR, 코드 10)
솔루션:텍스트에 chr Tab이 있습니다.json에 텍스트를 입력하기 전에 chr Tab을 \t로 바꿉니다.
언급URL : https://stackoverflow.com/questions/31537153/jsonparseexception-illegal-unquoted-character-ctrl-char-code-10
'programing' 카테고리의 다른 글
JMS 및 AMQP - 토끼MQ (0) | 2022.09.03 |
---|---|
Java의 부울 프리미티브 크기가 정의되지 않은 이유는 무엇입니까? (0) | 2022.09.03 |
일부 클래스에 Eclipse Java 패키지 탐색기가 물음표를 표시하는 이유는 무엇입니까? (0) | 2022.09.03 |
공변량 반환 유형이란 무엇입니까? (0) | 2022.09.03 |
Kotlin의 클래스와 객체의 차이 (0) | 2022.09.03 |