`
FirstBlood
  • 浏览: 161645 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

jackson 序列化 通过给定Class映射 与抽象类的映射

 
阅读更多

//如果已知想要序列化的类型 可以使用TypeReference来进行处理
//List<MyBean> result = mapper.readValue(src, new TypeReference<List<MyBean>>() { });


//如果是未知情况可以使用TypeFactory来进行动态反射序列化
//apper.readValue(src, TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, MyBean.class));



//另外如果你的类当中的某个属性是抽象类 那么在反序列化的时候可以通过
 @JsonDeserialize(as=Impl.class) 来进行处理


//如果属性是 List 内部元素是抽象类
For java.util.List values you would use @JsonDeserialize(contentAs=ValueTypeImpl.class) instead, and for java.util.Map keys, @JsonDeserialize(keyAs=KeyTypeImpl.class).




//可以设置SimpleModule 进行个性化设置
		SimpleModule module = new SimpleModule();
		module.addSerializer(Date.class, new JsonSerializer<Date>() {
			@Override
			public void serialize(Date arg0, JsonGenerator jgen,
					SerializerProvider arg2) throws IOException,
					JsonProcessingException {
				SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
				jgen.writeString(format.format(arg0));
			}
		});
		mapper.registerModule(module);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics