Java解析json数据(fastjson2)
Json数据
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它以易于阅读和编写的方式来表示结构化数据,常用于在不同系统之间进行数据交互和传输。
JSON使用键值对的方式来组织数据,具有以下几个特点:
- 具有简洁的语法:JSON使用了人类可读的文本格式,易于理解和编写。
- 支持多种数据类型:JSON支持字符串、数值、布尔值、数组、对象等多种数据类型。
- 基于键值对的数据结构:JSON中的数据由键值对组成,键是字符串,值可以是字符串、数值、布尔值、数组或嵌套的JSON对象。
- 平台无关性:JSON是独立于编程语言和操作系统的,可以在不同的平台和环境中使用和解析。
{ "name":"John", "age":30, "city":"New York", "is_student":false, "hobbies":["reading","traveling","gardening"], "area": { "province" : "XXX", "city" : "XXX", "district" : "XXX" } }
参考上面的例子,"name":"John"
这样的就是普通的字符串数据类型,而hobbies
就是对应的数组格式了,area
对应的是对象格式。数组里面是可以嵌套对象和其他数据格式的,也就是说json非常灵活,我们在获取其数据的时候,不同的数据类型要用不同的获取方式。
代码(遍历)
package com.ruoyi.qcc; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; /** * @BelongsProject: ruoyi * @BelongsPackage: com.ruoyi.qcc * @Author: chuanwei.yang 42624 * @CreateTime: 2023-06-27 21:03 * @Description: TODO * @Version: 1.0 */ public class JsonTraversalExample { public static void main(String[] args) { String jsonStr = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\", \"pets\":[\"dog\",\"cat\"]}"; // 获取一个JSONObject对象 JSONObject json = JSON.parseObject(jsonStr); // 调用遍历方法 traverseJson(json); } public static void traverseJson(JSONObject json) { // 获取所有的 key 值 for (String key : json.keySet()) { // get 方法获取 value Object value = json.get(key); System.out.println("Key: " + key + ", Value: " + value.toString()); // 如果value值是一个数组,则使用JSONArray接收,然后遍历。 if (value instanceof JSONArray) { // 强转 JSONArray JSONArray array = (JSONArray) value; for (int i = 0; i < array.size(); i++) { System.out.println("Array Element: " + array.getString(i)); } } } } }
上面的代码提供了一种遍历的方法。更多的时候,我们需要按需取里面的数据,所以下面的方法可能会更实用一点。
代码(取值)
// 解析 JSON // jsonString 对应需要被解析的json数据变量 JSONObject jsonObject = JSON.parseObject(jsonString); // 获取其中 key 值为 Result 的 value 值 JSONObject parentJson = jsonObject.getJSONObject("Result"); // 如果 Industry 的 value 是一个数组 要使用 JSONArray 来获取 JSONArray originalNameJsonArray = parentJson.getJSONArray("Industry"); // jsonArray 可以直接转换为 java 的 List 类型 List<JSONObject> originalNameJsonList = originalNameJsonArray.toList(JSONObject.class); // 之后就可以遍历了 for (JSONObject jsonItem : originalNameJsonList) { System.out.println(jsonItem); } // 获取某个值 // String EnglishName = resultJson.getString("EnglishName");
好看请赞,养成习惯:) 本文来自博客园,作者:靠谱杨, 转载请注明原文链接:https://www.cnblogs.com/rainbow-1/p/17515793.html
欢迎来我的51CTO博客主页踩一踩 我的51CTO博客
文章中的公众号名称可能有误,请统一搜索:靠谱杨的秘密基地
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2022-06-30 敲着代码记单词【1】
2022-06-30 markdown 常用表情符号 (github emoji)