Java语言从json格式中提取数据
java语言解析json格式数据的各种提取方法
·
例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转换成实体类
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)