59장. JacksonXML


jackson XML은 XML 페이로드를 Java 객체로 요약하거나 Java 개체를 XML 페이로드로 마샬링하기 위해 XMLMapper 확장 과 함께 Jackson 라이브러리를 사용하는 데이터 형식입니다. 참고: Jackson에 익숙한 경우 이 XML 데이터 형식은 JSON 대응과 동일한 방식으로 작동하므로 JSON serialization/deserialization에 대해 주석이 달린 클래스와 함께 사용할 수 있습니다.

이 확장은 또한 mimics #177B의 "코드 첫 번째" 접근 방식입니다.

이 데이터 형식은 Woodstox (특히 인쇄와 같은 기능, 빠르고 효율적인 XML 프로세서의 경우)에 의존합니다.

from("activemq:My.Queue").
  unmarshal().jacksonxml().
  to("mqseries:Another.Queue");
Copy to Clipboard Toggle word wrap

59.1. JacksonXML Options

jacksonXML 데이터 포맷은 아래에 나열된 15 가지 옵션을 지원합니다.

Expand
이름DefaultJava Type설명

xmlMapper

 

문자열

기존 ECDHEMapper를 조회하고 지정된 ID와 함께 사용합니다.

prettyPrint

false

부울

출력을 완벽하게 포맷할 수 있도록 하려면 다음을 수행하십시오. 기본값은 false입니다.

unmarshalType

 

문자열

요약할 때 사용할 Java 유형의 클래스 이름입니다.

jsonView

 

문자열

ScanSetting을 JSON으로 마샬링할 때 JSON 출력에서 특정 필드를 제외할 수 있습니다. Jackson을 사용하면 JSON 보기를 사용하여 이 작업을 수행할 수 있습니다. 이 옵션은 JsonView 주석이 있는 클래스를 참조하는 것입니다.

include

 

문자열

pojo를 JSON으로 마샬링하려면 pojo에 null 값이 있는 일부 필드가 있습니다. 이러한 null 값을 건너뛰려면 이 옵션을 NON_NULL로 설정할 수 있습니다.

allowJmsType

 

부울

JMS 사용자가 JMS 사양의 JMSType 헤더가 요약을 해제하는 데 사용할 FQN 클래스 이름을 지정할 수 있도록 허용합니다.

collectionType

 

문자열

사용할 레지스트리의 조회할 사용자 정의 컬렉션 유형을 나타냅니다. 이 옵션은 거의 사용되지 않지만 java.util.ECDHE 기반 컬렉션 유형과 다른 컬렉션 유형을 기본값으로 사용할 수 있습니다.

useList

 

부울

Map 목록 또는 Pojo 목록으로 요약할 수 있습니다.

enableJaxbAnnotationModule

 

부울

jackson을 사용할 때>-<B 주석 모듈을 활성화할지 여부입니다. 활성화되면 jackson에서tedB 주석을 사용할 수 있습니다.

moduleClassNames

 

문자열

사용자 지정 Jackson 모듈 com.fasterxml.jackson.databind.Module을 FQN 클래스 이름으로 String으로 지정합니다. 여러 클래스를 쉼표로 구분할 수 있습니다.

moduleRefs

 

문자열

Camel 레지스트리에서 언급한 사용자 지정 Jackson 모듈을 사용하려면 다음을 수행하십시오. 여러 모듈은 쉼표로 구분할 수 있습니다.

enableFeatures

 

문자열

jackson com.fasterxml.jackson.databind.ObjectMapper에서 활성화할 기능 세트. 기능은 com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature 또는 com.fasterxml.jackson.databind.MapperFeature의 여러 기능에 의해 쉼표로 구분될 수 있는 이름이어야 합니다.

disableFeatures

 

문자열

jackson com.fasterxml.jackson.databind.ObjectMapper에서 비활성화할 기능 세트. 기능은 com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature 또는 com.fasterxml.jackson.databind.MapperFeature의 여러 기능에 의해 쉼표로 구분될 수 있는 이름이어야 합니다.

allowUnmarshallType

 

부울

활성화하면 Jackson이 축소되지 않는 동안 CamelJacksonUnmarshalType 헤더를 사용할 수 있습니다. 이 기능은 사용하려는 경우에만 활성화해야 합니다.

contentTypeHeader

 

부울

데이터 형식이 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식의 application/xml은 XML로 마샬링하거나 데이터 형식의 경우 application/json을 JSON으로 마샬링합니다.

59.1.1. Spring DSL에서 Jackson XML 사용

Spring DSL에서 데이터 형식을 사용할 때 먼저 데이터 형식을 선언해야 합니다. 이 작업은 DataFormats XML 태그에서 수행됩니다.

        <dataFormats>
            <!-- here we define a Xml data format with the id jack and that it should use the TestPojo as the class type when
                 doing unmarshal. The unmarshalType is optional, if not provided Camel will use a Map as the type -->
            <jacksonxml id="jack" unmarshalType="org.apache.camel.component.jacksonxml.TestPojo"/>
        </dataFormats>
Copy to Clipboard Toggle word wrap

그런 다음 경로에서 이 ID를 참조할 수 있습니다.

       <route>
            <from uri="direct:back"/>
            <unmarshal><custom ref="jack"/></unmarshal>
            <to uri="mock:reverse"/>
        </route>
Copy to Clipboard Toggle word wrap

59.1.2. 마샬링에서 CloudEvent 필드 제외

gRPC를 XML로 마샬링할 때 XML 출력에서 특정 필드를 제외할 수 있습니다. Jackson을 사용하면 JSON 보기 를 사용하여 이 작업을 수행할 수 있습니다. 먼저 하나 이상의 마커 클래스를 생성합니다.

@JsonView 주석과 함께 마커 클래스를 사용하여 특정 필드를 포함/Exclude합니다. 주석은 getter에서도 작동합니다.

마지막으로 Camel JacksonXMLDataFormat 을 사용하여 위의 ScanSetting을 XML로 마샬링합니다.

결과 XML에는 weight 필드가 누락되어 있습니다.

<pojo age="30" weight="70"/>
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat