java--09--对象、JSON、Map、XML之间的转换

需要用到的架包:
这里写图片描述
1 创建JSON数组

/**
     * 创建JSON数组
     * @return
     */
    public static JSONArray createJSONArray(){
        JSONArray jsonArray=new JSONArray();

        JSONObject jsonObject=null;

        for (int i = 0; i < 5; i++) {
            jsonObject=new JSONObject();
            jsonObject.put("a", 1);
            jsonObject.put("b", 2);
            jsonObject.put("c", 3);
            jsonObject.put("d", 4);
            jsonObject.put("e", 5);
            jsonArray.add(jsonObject);
        }
        return jsonArray;
    }

2
2.1 单个对象转换成JSON数据
Java原始的方式:

    public static void beanCovertJSON() throws IOException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
        User user = new User();
        user.setId(1);
        user.setName("dema");
        user.setPassword("123");

        ObjectMapper objectMapper =new ObjectMapper();
        //将对象转换成JSON数据
        String JSONUser=objectMapper.writeValueAsString(user);
        System.out.println(JSONUser);

    }

或者采用如下的方式:

 /**
     * 对象转为JSON对象,对象数组转为JSON数组
     */
    public static void objectArrConvertJSONArr(){

        User user01=new User();
        user01.setId(1);
        user01.setName("111");
        user01.setPwd("111");

        User user02=new User();
        user02.setId(2);
        user02.setName("222");
        user02.setPwd("222");

        User user03=new User();
        user03.setId(3);
        user03.setName("333");
        user03.setPwd("333");


        User[] userArr=new User[3];
        userArr[0]=user01;
        userArr[1]=user02;
        userArr[2]=user03;
        //对象转JSON类型
        JSONObject jsonObject=JSONObject.fromObject(user01);
        System.out.println(jsonObject);
        //对象数组转JSON数组
        JSONArray jsonArray=JSONArray.fromObject(userArr);
        System.out.println(jsonArray);
    }

阿里巴巴开源JSON工具fastjson:

/**
     * 对象转JSON
     */
    public static void javaBeanConvertJson() {
        User user=new User();
        user.setId(1);
        user.setName("name");
        user.setPassword("password");

        Object json = JSONObject.toJSON(user);
        System.out.println(json);
    }

2.2 Java对象集合转json

/**
     * Java对象集合转json
     */
    public static void lstJavaConvertJson() {
        List<User> lstUser=new ArrayList<User>();

        User user01=new User();
        user01.setId(1);
        user01.setName("name");
        user01.setPassword("password");
        lstUser.add(user01);

        User user02=new User();
        user02.setId(2);
        user02.setName("name");
        user02.setPassword("password");
        lstUser.add(user02);
        System.out.println(lstUser.toString());

        Object json = JSONArray.toJSON(lstUser);
        System.out.println(json);
    }

3 对象转成二进制数据

    public static void beanConvertByte() throws JsonProcessingException{
        User user = new User();
        user.setId(1);
        user.setName("dema");
        user.setPassword("123");

        ObjectMapper objectMapper =new ObjectMapper();
        byte[] b=objectMapper.writeValueAsBytes(user);
    }

4 JSONObject数据转换成Map
Java原始方式:

    public static void JSONObjectConvertMap(){
        ObjectMapper objectMapper =new ObjectMapper();
        JSONArray jsonArray=createJSONArray();
        Map map=null;
        try {
            map = objectMapper.readValue(jsonArray.getJSONObject(0).toString(), Map.class);
        } catch (JsonParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }        
        System.out.println(map.get("a"));  
    }

阿里巴巴开源JSON工具fastjson:

/**
     * json对象转Map
     */
    public static void jsonConvertMap() {
        JSONObject obj=new JSONObject();
        obj.put("id", "1");
        obj.put("name", "name");
        obj.put("password", "password");
        Map<String,String> param=JSONObject.parseObject(obj.toJSONString(), new TypeReference<Map<String, String>>(){});
        System.out.println(param.toString());
    }

5 Map转换成JSON

    public static void MapConvertJSON() throws JsonProcessingException{

        String str=null;
        Map map=new HashMap();
        map.put("1","a");
        map.put("2", "b");
        map.put("3", "c");

        ObjectMapper objectMapper =new ObjectMapper();
        //转换
        str=objectMapper.writeValueAsString(map);
        System.out.println(str);
    }

fastjson工具:

/**
     * Map转JSON
     */
    public static void mapConvertMap() {
        Map<String,Object> param=new HashMap<String, Object>();
        param.put("a", 1);
        param.put("b", 2);
        param.put("c", 3);
        Object json = JSONObject.toJSON(param);
        System.out.println(json);
    }

6
6.1 单个json字符串转Java对象

/**
     * json字符串转Java对象
     */
    public static void jsonObjConvertJavaBean() {
        JSONObject obj=new JSONObject();
        obj.put("id", 1);
        obj.put("name", "name");
        obj.put("password", "password");
        System.out.println(obj.toString());
        User user = JSON.parseObject(obj.toString(), User.class);
        System.out.println(user.getName());
    }

6.2 JSON数组转Java集合

/**
     * json对象数组转Java集合
     */
    public static void lstJsonObjConvertList() {
        JSONArray objArr=new JSONArray();
        JSONObject obj01=new JSONObject();
        obj01.put("id", 1);
        obj01.put("name", "name");
        obj01.put("password", "password");
        objArr.add(obj01);

        JSONObject obj02=new JSONObject();
        obj02.put("id", 2);
        obj02.put("name", "name");
        obj02.put("password", "password");
        objArr.add(obj02);
        System.out.println(objArr.toString());

        List<User> lstUser = JSONArray.parseArray(objArr.toString(), User.class);
        for(User user:lstUser) {
            System.out.println(user.getId());
        }
    }

7 XML与Map之间的转换
7.1 Map转XML

public static String convertMapToXml(Map<String,Object> param) {
        StringBuffer strParam=new StringBuffer();
        strParam.append("<xml>");
        strParam.append("<request>");
        for(Entry<String,Object> entry:param.entrySet()) {
            strParam.append("<"+entry.getKey()+">");
            strParam.append(entry.getValue());
            strParam.append("</"+entry.getKey()+">");
        }
        strParam.append("</request>");
        strParam.append("</xml>");
        return strParam.toString();
    }

示例:

<xml><request><a>1</a><b>2</b><c>3</c></request></xml>

7.2 XML转Map。
需要添加依赖:

<dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
            <version>2.9.3</version>
        </dependency>
@SuppressWarnings("unchecked")
    public static Map<String,Object> convertXmlToMap(String xmlData){
        try {
            return new XmlMapper().readValue(xmlData, HashMap.class);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            return null;
        }
    }

参考博客:
http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html
http://rsy.iteye.com/blog/2303323
未完待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值