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);

你可能感兴趣的:(Jackson)