jackson 自定义序列化

/**
 * json null值不返回
 *
 * @author xulin
 * @version 1.0 2015年3月10日
 */
public class NotNullObjectMapper extends ObjectMapper {

	private static final long serialVersionUID = 8832585844584959426L;

	public NotNullObjectMapper() {
		this.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
		this.setSerializationInclusion(Include.NON_NULL);
		this.registerModule(new SimpleModule().addSerializer(EmptyObject.class, new EmptyObjectSerializer()));
	}

	/**
	 * 将空对像转为大括号{}
	 *
	 * @author xulin
	 * @version 1.0 2015年3月10日
	 */
	private class EmptyObjectSerializer extends JsonSerializer<EmptyObject> {

		@Override
		public void serialize(EmptyObject value, JsonGenerator jgen, SerializerProvider provider) throws IOException,
			JsonProcessingException {
			jgen.writeStartObject();
			jgen.writeEndObject();
		}

	}

	public static class PicPathSerializer extends JsonSerializer<String> {

		@Override
		public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) throws IOException,
			JsonProcessingException {
			jgen.writeNumber(value);
		}

	}
}
	<mvc:annotation-driven>
		<mvc:message-converters register-defaults="true">
			<!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
			<bean class="org.springframework.http.converter.StringHttpMessageConverter">
		    	<constructor-arg value="UTF-8" />
			</bean>
			<!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true -->
			<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper">
                	<bean class="com.snail.assistant.util.NotNullObjectMapper"/>
                </property>
                <property name="prettyPrint" value="true"/>
                <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
            </bean>
  		</mvc:message-converters>
  		
  		<mvc:argument-resolvers>
            <bean class="com.snail.assistant.web.bind.method.support.PageableMethodArgumentResolver"/>
            <bean class="com.snail.assistant.web.bind.method.support.CurrentUserMethodArgumentResolver"/>
        </mvc:argument-resolvers>
	</mvc:annotation-driven>


你可能感兴趣的:(jackson 自定义序列化)