码迷,mamicode.com
首页 > Web开发 > 详细

Jackson如何实现json字符串和泛型List集合之间的转换

时间:2015-10-19 12:54:45      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:jackson

前言:

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

代码实现:

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


本文出自 “Simple Life” 博客,请务必保留此出处http://simplelife.blog.51cto.com/9954761/1704106

Jackson如何实现json字符串和泛型List集合之间的转换

标签:jackson

原文地址:http://simplelife.blog.51cto.com/9954761/1704106

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!