org.apache.httpcomponents
JSON 형식 데이터를 API에 게시하는 Rest API 를 사용하려고합니다 .
이 예외가 발생합니다.
원인 : com.fasterxml.jackson.core.JsonParseException : 따옴표없는 잘못된 문자 ((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 thread 도 참조하십시오 .
답변
Salesforce 플랫폼에서이 오류는으로 인해 발생 /
하며 해결 방법은 //
.