例1  data={token=eyJhbGciOiJI6AXdVgc3aoqys2NNA,code=200,message=成功}

1.tostring之后拆分成字符串数组。

        //data为object类型
        String dataToString  = dara.toString();
        dataToString = dataToString.replace("{", "").replace("}", "");
        String[] keyValuePairs = dataToString.split(", ");
        String access_token = "";
        for (String pair : keyValuePairs) {
            String[] keyValue = pair.split("=");
                if (keyValue[0].equals("token")) {
                token = keyValue[1];
                break;
            }
        }

2.使用 Gson、JsonElement、JsonObject 工具类

       String jsonString = data.toString();
       Gson gson = new Gson();
       JsonElement jsonElement = gson.fromJson(jsonString, JsonElement.class);
       JsonObject jsonObject = jsonElement.getAsJsonObject();
       String token = jsonObject.get("token").getAsString();
       int code = jsonObject.get("code").getAsInt();
       String message = jsonObject.get("message").getAsString();

例2   json={"token":"cxh7gOt9h7n1Nsr6VAIARGC","code":7200}

        //json为String类型
        JSONObject jsonObject = JSONObject.parseObject(json);
        String token = jsonObject.getString("token");
        Long expiresIn = jsonObject.getLong("code");

特殊的案例:json样式中含有json样式

     {
           "touser":"open_id",
           "template_id":"template_ids",
           "url":"http://weixin.qq.com/download",  
           "data":{
                   "thing1":{
                       "value":"参数1"
                   },
 		           "thing2": {
                       "value":"参数2"
                   },
                   "thing3": {
                       "value":"参数3"
                   },
                   "thing4": {
                       "value":"参数4"
                   }
           }
     }

处理方式是使用com.alibaba.fastjson.JSONObject来逐层解析

  String jsonString= "{\n" +
                "   \"touser\":\"open_id\",\n" +
                "   \"template_id\":\"template_ids\",\n" +
                "   \"url\":\"http://weixin.qq.com/download\",\n" +
                "   \"data\":{\n" +
                "       \"thing1\":{\n" +
                "           \"value\":\"参数1\"\n" +
                "       },\n" +
                "       \"thing2\": {\n" +
                "           \"value\":\"参数2\"\n" +
                "       },\n" +
                "       \"thing3\": {\n" +
                "           \"value\":\"参数3\"\n" +
                "       },\n" +
                "       \"thing4\": {\n" +
                "           \"value\":\"参数4\"\n" +
                "       }\n" +
                "   }\n" +
                "}";

        JSONObject jsonObject = JSONObject.parseObject(jsonString);
        String touser = jsonObject.getString("touser");
        String templateId = jsonObject.getString("template_id");
        String url = jsonObject.getString("url");
        JSONObject dataObject = jsonObject.getJSONObject("data");
        String thing1 = dataObject.getJSONObject("thing1").getString("value");
        String thing2 = dataObject.getJSONObject("thing2").getString("value");
        String thing3 = dataObject.getJSONObject("thing3").getString("value");
        String thing4 = dataObject.getJSONObject("thing4").getString("value");

        System.out.println("touser: " + touser);
        System.out.println("template_id: " + templateId);
        System.out.println("url: " + url);
        System.out.println("thing1: " + thing1);
        System.out.println("thing2: " + thing2);
        System.out.println("thing3: " + thing3);
        System.out.println("thing4: " + thing4);

例3 标准json字符串直接转换:JSON.parseObject(json, Class.class);

        String json = "{\"nodeName\":\"审批通过\",\"sts\":\"20\",\"isValid\":true,\"loanInfo\":{\"fkDate\":\"2025-11-19\",\"fkEndDate\":\"2026-11-20\",\"fiveLevelClassify\":\"\",\"fkStartDate\":\"2025-11-20\",\"loanUrl\":\"300015423\",\"fkAmount\":80.0,\"fkLetterDate\":\"2025-11-19\",\"fkLetterCode\":\"LX202511140021\"},\"SndProjectStatusApprInfoVo\":{\"creator\":20240024,\"replyCounterGuarMeas\":\"自然人保证,自然人抵押\",\"loanType\":\"非循环\",\"apprUrl\":\"300014804\",\"replyDate\":\"2025-11-17 \",\"replyCode\":\"LX202511140021\",\"updateTime\":\"2025-11-19 10:18:11\",\"isPublish\":true,\"message\":\"\",\"updateName\":\"徐元杰\",\"demand\":\"\",\"apprDate\":\"2025-11-17 \",\"apprCode\":\"LX202511140021\",\"replyPeriod\":12,\"replyAmount\":80.0,\"replyCounterGuarDesc\":\"自然人保证,自然人抵押\",\"updator\":\"\",\"guarRate\":0.6,\"id\":\"\",\"businessType\":\"\",\"projectId\":30000320,\"createName\":\"徐元杰\"},\"businessKey\":\"QDND20251118110214690\",\"approvalRecord\":[{\"taskDefKey\":\"SC-HN-001\",\"approveType\":\"审查流程(2024版)\",\"assigneeName\":\"徐元杰\",\"taskName\":\"于文成等1笔80.0万元\",\"startTime\":\"2025-11-14 16:40:11\",\"remark\":\"/\",\"assignee\":\"20240024\",\"taskId\":\"15270240\",\"status\":\"/\"},{\"taskDefKey\":\"SC-HN-001\",\"approveType\":\"审查流程(2024版)\",\"assigneeName\":\"徐元杰\",\"taskName\":\"于文成等1笔80.0万元\",\"startTime\":\"2025-11-14 17:29:11\",\"remark\":\"/\",\"assignee\":\"20240024\",\"endTime\":\"2025-11-17 10:57:11\",\"taskId\":\"15270581\",\"status\":\"endEvent\"},{\"taskDefKey\":\"SP-HN-001\",\"approveType\":\"审批流程(2024版)\",\"assigneeName\":\"徐元杰\",\"taskName\":\"于文成等1笔80.0万元\",\"startTime\":\"2025-11-19 10:06:11\",\"remark\":\"endEvent\",\"assignee\":\"20240024\",\"endTime\":\"2025-11-19 10:18:11\",\"taskId\":\"15282771\",\"status\":\"endEvent\"}],\"remark\":\"农担已审批完成\",\"apprInfo\":{\"creator\":20240024,\"replyCounterGuarMeas\":\"自然人保证,自然人抵押\",\"loanType\":\"非循环\",\"apprUrl\":\"300014804\",\"replyDate\":\"2025-11-17 \",\"replyCode\":\"LX202511140021\",\"updateTime\":\"2025-11-19 10:18:11\",\"isPublish\":true,\"message\":\"\",\"updateName\":\"徐元杰\",\"demand\":\"\",\"apprDate\":\"2025-11-17 \",\"apprCode\":\"LX202511140021\",\"replyPeriod\":12,\"replyAmount\":80.0,\"replyCounterGuarDesc\":\"自然人保证,自然人抵押\",\"updator\":\"\",\"guarRate\":0.6,\"id\":\"\",\"businessType\":\"\",\"projectId\":30000320,\"createName\":\"徐元杰\"},\"nodeId\":\"grt_qysf\",\"status\":\"20\",\"SndProjectStatusLoanInfoVo\":{\"fkDate\":\"2025-11-19\",\"fkEndDate\":\"2026-11-20\",\"fiveLevelClassify\":\"\",\"fkStartDate\":\"2025-11-20\",\"loanUrl\":\"300015423\",\"fkAmount\":80.0,\"fkLetterDate\":\"2025-11-19\",\"fkLetterCode\":\"LX202511140021\"}}";

        Map map  = JSON.parseObject(json, Map.class);
        System.out.println(map.get("nodeName"));
        System.out.println(map.get("loanInfo"));

此方法也可用于json转换成实体类

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐