Jackson에서 fail_on_empty_beans를 어떻게 비활성화합니까?
jackson 2.1을 사용 fail_on_empty beans
하여 오류 메시지가 비활성화하려는 것처럼 보이는 것을 어떻게 비활성화합니까?
나는 이것이 세상에서 가장 단순한 것이라고 가정하고 있지만 지옥이 늦었고 간단한 튜토리얼이나 .NET에서 특히 분명한 것을 찾을 수 없었습니다 api
. SerializationFactory
? 왜 그렇게 직관적이지 않게 만들고 오류 메시지를 그렇게 간단하게 보이게 만들까요?
내가 비록 할 오류 메시지처럼, 내 말은, 그것은 NPE보다 낫다.
나는 주석을 사용하여 이것을 할 수있는 방법이 있다고 가정하고있다. 그러나 나는 내가하고있는 단순한 작업을 위해 그것들을 전혀 사용하고 싶지 않다!
클래스별로 또는 전 세계적으로 이것을 할 수 있다고 믿습니다.
클래스마다 클래스 선언 위의 @JsonSerialize를 시도하십시오.
매퍼의 경우 한 가지 예가 있습니다.
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
// do various things, perhaps:
String someJsonString = mapper.writeValueAsString(someClassInstance);
SomeClass someClassInstance = mapper.readValue(someJsonString, SomeClass.class)
아래의 StackOverflow 링크에는 Spring 프로젝트에 대한 예제도 있습니다.
Jersey를 사용한 REST의 경우 머리에서 처음부터 기억하지 못하지만 비슷하다고 생각합니다.
내가 파낸 링크 몇 개 : (코드 하우스가 종료되어 첫 번째 링크를 편집 함).
- https://web.archive.org/web/20150513164332/https://jira.codehaus.org/browse/JACKSON-201
- Jackson serializationConfig
Spring Boot를 사용하는 경우 application.properties 파일에서 다음 속성을 설정할 수 있습니다. spring.jackson.serialization.FAIL_ON_EMPTY_BEANS = false
클래스에 공용 메서드 / 속성이 포함되어 있지 않은 경우에도 동일한 문제가 발생할 수 있습니다. 나는 일반적으로 API 요청 및 응답을위한 전용 DTO를 가지고 있으며 공개로 선언했지만 한 경우에는 메소드도 공개하는 것을 잊었습니다. 이로 인해 처음에는 "빈"빈이 발생했습니다.
클래스에 @JsonIgnoreProperties(ignoreUnknown=true)
정의되지 않은 필드를 무시하도록 클래스에 주석을 달 수도 있습니다.
추가 필드없이 JSON 개체를 얻으려면이 주석을 클래스에 추가하십시오. 저에게 완벽하게 작동했습니다.
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
이 행에 application.properties 파일을 추가 할 수도 있지만 JSON에 추가 필드가 추가됩니다.
spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false
제 경우에는이 오류를 일으키는 필드 중 하나에 @JsonProperty 주석을 작성하지 못했습니다.
org.codehaus.jackson.map.ObjectMapper를 사용하는 경우 pls. 다음 줄을 사용하십시오
mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);
여기에 다른 문제에 대한 솔루션을 추가하지만 동일한 오류로 나타나는 솔루션 ... 문자열 멤버에서 리터럴 큰 따옴표를 이스케이프하기 위해 즉석에서 json을 구성 할 때 (API 응답 또는 기타)주의하십시오. 자신의 잘못된 json을 소비하고있을 수 있습니다.
ObjectMapper mapper = new ObjectMapper();
안녕하세요,
내가 사용할 때 mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
내 json 객체 값이 ''응답에서 각도 페이지 의미의 공백
아래 설정의 도움으로 해결
mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker().
withFieldVisibility(JsonAutoDetect.Visibility.ANY).withGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
.withCreatorVisibility(JsonAutoDetect.Visibility.NONE));
이 문제를 해결하려면 아래와 같이 JsonDataFormat 클래스를 구성하십시오.
ObjectMapper mapper = new ObjectMapper();
mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
거의 동일합니다.
mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);
참고 URL : https://stackoverflow.com/questions/15261456/how-do-i-disable-fail-on-empty-beans-in-jackson
'program story' 카테고리의 다른 글
PHP 5.4.0 이전의 익명 함수에서`$ this` 사용 (0) | 2020.09.17 |
---|---|
JQuery에서 클릭 한 요소를 제외한 모든 클래스를 선택하는 방법은 무엇입니까? (0) | 2020.09.16 |
다중 패스를 사용한 핵심 데이터 마이그레이션의 예 또는 설명? (0) | 2020.09.16 |
grunt.js 작업 나열 (0) | 2020.09.16 |
AngularJS 커스텀 필터 함수 (0) | 2020.09.16 |