Spring 3.1 MVC REST 支持之序列化

4 篇文章 0 订阅

Spring MVC的(JSON)序列化可以通过配置ObjectMapper来实现。为了实现自定义对象或者接口的序列化,我们需要继承ObjectMapper,然后再加入自定义的序列化和反序列化的实现类就可以了。

public class TestObjectMapper extends ObjectMapper {
	
	public TestObjectMapper(){
		super();

		SimpleModule testModule=new SimpleModule("TestModule", new Version(0,0,1,null));
		
		//deserializers
		testModule.addDeserializer(IDatetime.class, new DatetimeDeserializer());
		
		//serializers
		testModule.addSerializer(Date.class, new DateSerializer());
		
		registerModule(testModule);
		
		//add handler to handler unkonwn object property
		getDeserializationConfig().addHandler(new DeserializationUnknownPropertyHandler());
		
		//config to ignore unknown property
		configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
	}

}
然后再在Spring配置文件中配置:
    <!-- Data Converter -->
    <bean id="testObjectMapper" class="com.uv.smp.api.offersearch.v1.util.TestObjectMapper"/>
	<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
		<property name="objectMapper" ref="testObjectMapper"/>
	</bean>
	
	<!-- Method Annotation Mapping -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
    	<property name="urlDecode" value="true"/>
    </bean>

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    	<property name="messageConverters">
	       <list>
	       		<ref bean="jsonConverter" />
	       </list>
	   	</property>
    </bean> 
    <bean class="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver ">
    	<property name="messageConverters">
	       <list>
	       		<ref bean="jsonConverter" />
	       </list>
	   	</property>
    </bean>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值