2014-12-02 2 views
0

빈 속성 (JsonInclude.Include.NON_EMPTY)을 제외하도록 구성된 Jackson 2.4.3 및 ObjectMapper을 사용하고 있지만 직렬화 중에 맞춤 PropertyFilter을 사용하고 일부 속성은 제외됩니다. (작성되지 않음). 이전에 비어있는 속성을 제외해도 제대로 작동하지만 내 필터로 속성 값을 건너 뛴 경우에도 JSON에 계속 표시됩니다.잭슨 직렬화 - 필터링 후 빈 속성 제거

{"configurationPropertyList":{ 
"someProperty":{}, 
"someList":[{}, {}, {}] 
} 
} 

그 빈 속성을 제거 할 수있는 방법이 있나요 : 끝에 나는 매우 받아 들일 빈 속성 JSON 파일이?

마지막으로 JSON은 매우 크고 복잡하며 성능상의 이유로 JSON은 추가 작업없이 Jackson 자체에서 제작해야합니다. 나는 가능한 한 간단한 해결책을 찾으려고 노력하고있다.

답변

2

필터링은 입력 된 Java 객체에서 작동하며, 구성된 JSON에서는 작동하지 않습니다. 이는 많은 내용의 내용을 필터링 할 수 있지만 결과는 JSON Object가 비어 있음을 의미합니다. 객체 자체는 비어 있지 않습니다.

더 나은 처리가 가능하며 적어도 java.util.Map 초 동안 필터링의 중첩 된 특성을 처리 할 수있는 일부 작업이 있습니다 (2.5에 대해 완료해야 함). 그러나 지금은 더 이상 내용을 트리밍 할 수있는 자동화 된 솔루션이 없습니다.