前言:
Jackson常用方法:
Jackson是处理一般的java对象和json之间的转换常用的两个方法是ObjectMapper类的writeValueAsString()和readValue()两个方法就可以实现。
但是,如果是要转成指定泛型的List集合,如List.就需要先反序列化复杂类型为泛型
Collection Type;
举例说明:
如果是List集合,那么使用ObjectMapper的getTypeFactory().constructParametricType(List.class, User.class);
如果是HashMap集合,那么使用ObjectMapper的getTypeFactory().constructParametricType(HashMap.class,String.class,User .class);
代码实现:public final ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) throws Exception{
JavaType javaType = getCollectionType(ArrayList.class, YourBean.class);
List lst = (List)mapper.readValue(jsonString, javaType);
}
/**
* 获取泛型的Collection Type
* @param collectionClass 泛型的Collection
* @param elementClasses 元素类
* @return JavaType Java类型
* @since 1.0
*/
public static JavaType getCollectionType(Class> collectionClass, Class>... elementClasses) {
return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
}