JSON解析例子
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
在IT领域,尤其是在软件开发与数据处理中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于人阅读和编写,同时也易于机器解析和生成,因此被广泛应用于Web应用之间以及服务器端的数据传输。给定的代码示例展示了如何在Java环境中解析和操作JSON数据。 ### JSON解析知识点 #### 1. JSON结构理解 JSON是一种基于文本的数据交换格式,它使用键值对来表示数据对象,并使用数组来表示数据列表或集合。一个简单的JSON对象可能如下所示: ```json { "name": "John", "age": 30, "city": "New York" } ``` 而一个包含数组的JSON对象则可能如下: ```json { "employees": [ {"name":"John", "age":30}, {"name":"Jane", "age":28} ] } ``` #### 2. Java中的JSON解析库 Java中有多种用于解析和操作JSON数据的库,包括但不限于:`org.json`, `Gson`, `Jackson`, 和 `JSON-P`, 本例中使用的是`net.sf.json`库,这是一个功能强大的JSON处理库,提供了`JSONObject`和`JSONArray`等类用于解析和操作JSON数据。 #### 3. JSON数据解析步骤 在给定的代码示例中,首先定义了一个包含复杂结构的JSON字符串`jsonStr`,然后通过以下步骤进行解析: - **将JSON字符串转换为Map**:使用`parseJSON2Map`方法将JSON字符串转换为`Map`对象,这样可以更容易地遍历和访问数据。 - **遍历Map**:通过迭代器遍历Map,打印出其中的键值对。 - **将JSON字符串转换为JSONObject**:使用`JSONObject.fromObject()`方法将JSON字符串转换为`JSONObject`对象,然后可以通过键名获取具体的值或子对象。 - **提取特定字段**:例如,从`JSONObject`中提取`code`字段的值,或者获取嵌套的`sign`对象。 - **处理数组**:使用`getJSONArray()`方法获取`columnInfo`数组,然后遍历该数组,提取每个元素(`JSONObject`)中的`id`和`header`字段。 #### 4. 复杂结构的递归解析 当遇到嵌套的JSON数据时,如`sign`对象或`columnInfo`数组,需要递归地进行解析。在给定的代码中,`parseJSON2Map`方法检查内部值是否为数组或对象,如果是,则继续进行解析,直到所有数据都被处理完毕。 #### 5. 使用自定义工具类 代码中还引用了`JsonUtil`和`com.mongodb.util.JSON`,这表明在实际项目中,开发者可能会封装自己的工具类或使用第三方库提供的方法,以简化JSON数据的处理过程。 ### 总结 通过以上分析,我们可以看到,JSON数据的解析和操作在Java中是一项基本但重要的技能,涉及到数据结构的理解、适当的库选择以及代码的逻辑设计。掌握这些知识点不仅有助于提高数据处理的效率,也是深入理解和应用Web服务、API接口和数据库交互的关键。
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.util.JSONUtils;
import com.bjdv.common.util.JsonUtil;
import com.mongodb.util.JSON;
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String jsonStr = new String("{\"code\":\"1\",\"message\":\"\u7ed3\u679c\u4e3a\u7a7a\",\"sign\":{\"propone\":\"propone\",\"proptwo\":\"proptwo\"},\"columnInfo\":[{\"id\":\"orgId\",\"header\":\"虚拟组织ID\",\"fieldName\":\"orgId\",\"fieldIndex\":\"orgId\",\"sortOrder\":null,\"hidden\":false,\"exportable\":true,\"printable\":true},{\"id\":\"orgName\",\"header\":\"虚拟组织名称\",\"fieldName\":\"orgName\",\"fieldIndex\":\"orgName\",\"sortOrder\":null,\"hidden\":false,\"exportable\":true,\"printable\":true}]}");
System.out.println(jsonStr);
Map jsonMap = parseJSON2Map(jsonStr);
Iterator iterator = jsonMap.entrySet().iterator();
while(iterator.hasNext()){
System.out.println("jsonMap"+"====="+iterator.next().toString());
}
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
String code = jsonObject.getString("code");
System.out.println("code===="+code);
JSONObject sign = jsonObject.getJSONObject("sign");
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/94ab8654c30942b8b48e3709bbddf62a_sdqdkjdxzq.jpg!1)
- 粉丝: 0
- 资源: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 成绩绩点9.10.zip
- 野火霸道V2,MPU6050移植DMP
- 探索JavaScript中的命令模式:构建灵活的命令执行机制
- CNN,全称Convolutional Neural Network(卷积神经网络),是一种特殊类型的神经网络,它在处理图像数据
- 暴风电视刷机数据 42F1 配屏V420HJ2-P01(C3) 机编600000MWU00 屏参30162502 风UI1.0
- CNN,全称Convolutional Neural Network(卷积神经网络),是一种特殊类型的神经网络,它在处理图像数据
- 万兴数据恢复免费.rar
- vue+echarts水文监测大数据可视化
- 深度学习-张量类的基础知识
- SPSS(Statistical Product and Service Solutions)是一款广泛使用的统计软件,由IBM
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)