SKR
SKR

Reputation: 123

Camel-jackson vs 2.9.0 ignore unknown properties during unmarshal

<dataFormats>
 <json id="json" library="Jackson"    
   unmarshalTypeName="com.foo.MyPojo"   disableFeatures="FAIL_ON_UNKNOWN_PROPERTIES"/>

</dataFormats>

I want to disbleFeature Fail on unknown property of jackson but I think it is available only in camel vs2.15.0 and greater.

How can i implement following using spring dsl:

dataFormat.getObjectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES,false);

Upvotes: 2

Views: 2522

Answers (2)

Carlos Rincon
Carlos Rincon

Reputation: 11

With JSON:

Use JsonIgnoreProperties with attribute "value". For instance:

@JsonIgnoreProperties(ignoreUnknown = true, value={"dataIgnored"})

When BeanDeserializerBuild is instanced, use those attributes.

Upvotes: 1

Aliaksei Bulhak
Aliaksei Bulhak

Reputation: 6208

I'm not sure, or may be did not understand you right. But try this thing:

<bean id="format" class="org.apache.camel.component.jackson.JacksonDataFormat"/>
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetObject" ref="format"/>
    <property name="targetMethod" value="disableFeature"/>
    <property name="arguments">
        <list>
            <value type="com.fasterxml.jackson.databind.DeserializationFeature">FAIL_ON_UNKNOWN_PROPERTIES</value>
        </list>
    </property>
</bean>

Upvotes: 1

Related Questions