前言:

Jackson常用方法:     

   Jackson是处理一般的java对象和json之间的转换常用的两个方法是ObjectMapper类的writeValueAsString()和readValue()两个方法就可以实现。

        但是,如果是要转成指定泛型的List集合,如List<User>.就需要先反序列化复杂类型为泛型

Collection Type;

举例说明:

        如果是List<User>集合,那么使用ObjectMapper的getTypeFactory().constructParametricType(List.class, User.class);

      如果是HashMap<String,User>集合,那么使用ObjectMapper的getTypeFactory().constructParametricType(HashMap.class,String.class,User .class);

代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public  final  ObjectMapper mapper =  new  ObjectMapper(); 
      
     public  static  void  main(String[] args)  throws  Exception{  
         JavaType javaType = getCollectionType(ArrayList. class , YourBean. class ); 
         List<YourBean> lst =  (List<YourBean>)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);   
     }