Jackson处理java对象,json,xml间转换

来源:互联网 发布:设计价格表的软件 编辑:程序博客网 时间:2024/06/07 19:56

原文:http://blog.sina.com.cn/s/blog_994766510101dxnd.html

需要jar包:jackson-annotations-2.3.0.jar,jackson-core-2.3.0.jar,jackson-databind-2.1.3.jar,jackson-dataformat-xml-2.1.3.jar,stax2-2.1.jar



private static ObjectMapper objectMapper = new ObjectMapper();  
    private static XmlMapper xmlMapper = new XmlMapper();
     
    public static String obj2json(Object obj) throws Exception{  
        return objectMapper.writeValueAsString(obj);  
    }  
      
     
    public static T json2pojo(String jsonStr,Class clazz) throws Exception{  
        return objectMapper.readValue(jsonStr, clazz);  
    }  
      
     
    public static Map json2map(String jsonStr)throws Exception{  
        return objectMapper.readValue(jsonStr, Map.class);  
    }  
      
     
    public static Map json2map(String jsonStr,Class clazz)throws Exception{  
        Map> map =  objectMapper.readValue(jsonStr, new TypeReference>() {  
        });  
        Map result = new HashMap();  
        for (Entry> entry : map.entrySet()) {  
            result.put(entry.getKey(), map2pojo(entry.getValue(), clazz));  
        }  
        return result;  
    }  
      
     
    public static List json2list(String jsonArrayStr,Class clazz)throws Exception{  
        List> list = objectMapper.readValue(jsonArrayStr, new TypeReference>() {  
        });  
        List result = new ArrayList();  
        for (Map map : list) {  
            result.add(map2pojo(map, clazz));  
        }  
        return result;  
    }  
      
     
    public static T map2pojo(Map map,Class clazz){  
        return objectMapper.convertValue(map, clazz);  
    }  
      
     
    public static String json2xml(String jsonStr)throws Exception{  
        JsonNode root = objectMapper.readTree(jsonStr);  
        String xml = xmlMapper.writeValueAsString(root);  
        return xml;  
    }  
      
     
    public static String xml2json(String xml){  
        StringWriter w = new StringWriter();  
        JsonParser jp;
        try {
            jp = xmlMapper.getFactory().createParser(xml);
            JsonGenerator jg = objectMapper.getFactory().createGenerator(w);  
            while (jp.nextToken() != null) {  
                jg.copyCurrentEvent(jp);  
            }  
            jp.close();  
            jg.close();
        } catch (Exception e) {
            e.printStackTrace();
        }  
         
        return w.toString();  
    } 
0 0