• JSON对象、字符串之间的相互转换


    JSON对象、字符串之间的相互转换

    说明:此处的转换是基于fastjson 的

    一、准备工作

    添加依赖

            <dependency>
                <groupId>com.alibabagroupId>
                <artifactId>fastjsonartifactId>
                <version>1.2.75version>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    二、转换方法介绍

    1. JSON字符串转JSON对象

    		// JSON 字符串
            String jsonStr = "{\"code\":0,\"msg\":\"success\",\"data\":3}";
    		// 转json对象
            JSONObject jsonObject = JSON.parseObject(jsonStr);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2. JSON对象转JSON字符串

            JSONObject jsonObject = new JSONObject();
    		// 转成字符串
            String jsonStr = jsonObject.toJSONString();
    
    • 1
    • 2
    • 3

    3. 字符串数组转JSONArray对象

            String jsonStrArr = "[{\"code\":0,\"msg\":\"success\",\"data\":3},{\"code\":0,\"msg\":\"success\",\"data\":3}]";
            // json字符串数组--> JSONArray
            JSONArray jsonArray = JSON.parseArray(jsonStrArr);
            // 遍历JSONArray
            for (Object o : jsonArray) {
                JSONObject jsonObject = (JSONObject) o;
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    【注】:字符串数组类型不可直接转JSONObject,不然会报错。

    4. JSONArray转字符串

    JSONArray jsonArray = new JSONArray();
    String strArr = jsonArray.toJSONString();
    
    • 1
    • 2

    5. JSON字符串与java对象之间的转换

    • 字符串 转 Java对象

      public class ReponseObj {
          int code;
          String msg;
          String data;
      }
      
      String jsonStr = "{\"code\":0,\"msg\":\"success\",\"data\":\"3\"}";
      // 方法1
      ReponseObj reponseObj = JSON.parseObject(jsonStr,ReponseObj.class);
      // 方法2 (推荐)
      // JSON字符串与JavaBean之间的转换建议使用TypeReference
      ReponseObj reponseObj = JSON.parseObject(jsonStr, new TypeReference<ReponseObj>(){});
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
    • Java 对象 转 JSON字符串

      ReponseObj reponseObj = new ReponseObj();
      String jsonStr = JSON.toJSONString(reponseObj);
      
      • 1
      • 2
    • 字符串数组 转 Java对象

       String jsonStrArr = "[{\"code\":0,\"msg\":\"success\",\"data\":\"3\"},{\"code\":0,\"msg\":\"success\",\"data\":\"3\"}]";
       ArrayList<ReponseObj> list = JSON.parseObject(jsonStr, new TypeReference<ArrayList<ReponseObj>>(){});
      
      • 1
      • 2

    6. Java 对象与JSON对象之间的相互转换

    • java 对象 转 json对象

      String jsonStr = JSON.toJSONString(reponseObj);
      JSONObject jsonObj = JSON.parseObject(jsonStr);
      
      • 1
      • 2
    • json对象 转 Java对象

      // 方法1 先转换为json字符串,再使用parseObject
      String jsonStr = jsonObj.toJSONString();
      ReponseObj reponseObj = JSON.parseObject(jsonStr,new TypeReference<ReponseObj>() {});
      // 方法2 直接使用toJavaObject
      Student stu = JSON.toJavaObject(jsonObj, ReponseObj.class);
      
      • 1
      • 2
      • 3
      • 4
      • 5
  • 相关阅读:
    Linux 权限
    亚信笔试题【带答案】
    MySQL备份与恢复
    NAT-DDNS内网穿透技术,快解析DDNS的优势
    Hadoop环境安装
    SATA系列专题之三:3.4 Transport Layer传输层Error处理机制解析
    最小斯坦纳树【模板】
    Gradient Descent
    172基于matlab的MPPT智能算法
    Day48 力扣动态规划 : 647. 回文子串 |516.最长回文子序列 |动态规划总结篇
  • 原文地址:https://blog.csdn.net/weixin_41589987/article/details/126098413