一:问题
1.最近自己在前后端数据交互时需要进行JSON格式字符串、数组数据进行转换,进行问题整理
2.遇到需要JSON字符串转换的朋友可以阅读
二:解析步骤
1.第一点首先确定需求,明确需要转的字符串是一个对象还是一个数组,下面我模拟我自己的数组字符串进行演示
String s="[[\"2023-12-30 09:00:00\",\"2023-12-30 11:00:00\"],[\"2023-12-30 11:00:00\",\"2023-12-30 13:00:00\"],[\"2023-12-30 13:00:00\",\"2023-12-30 15:00:00\"],[\"2023-12-30 15:00:00\",\"2023-12-30 17:00:00\"],[\"2023-12-30 17:00:00\",\"2023-12-30 19:00:00\"],[\"2023-12-30 19:00:00\",\"2023-12-30 21:00:00\"]]\n";
这个是我定义的字符串数组,下面演示如何转换
2.实现步骤
(1)导入pom.xml依赖,注意的是版本version(替换为最新版本即可)
<!--Json格式解析-->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20230618</version>
</dependency>
(2)在对应的的类中导入包,千万别导错
(3)编写对应代码实现数据解析
String s="[[\"2023-12-30 09:00:00\",\"2023-12-30 11:00:00\"],[\"2023-12-30 11:00:00\",\"2023-12-30 13:00:00\"]," +
"[\"2023-12-30 13:00:00\",\"2023-12-30 15:00:00\"],[\"2023-12-30 15:00:00\",\"2023-12-30 17:00:00\"]," +
"[\"2023-12-30 17:00:00\",\"2023-12-30 19:00:00\"],[\"2023-12-30 19:00:00\",\"2023-12-30 21:00:00\"]]\n";
//创建JSONArray对象,将解析的字符串通过有参构造传递进去直接进行解析
JSONArray objects =new JSONArray(s);
//打印一下字符串
logger.info(objects+"");
// 遍历数组,提取时间数据
for (int i = 0; i < objects.length(); i++) {
//依次拿数组里面的数组
JSONArray timeRange = objects.getJSONArray(i);
//根据数组角标可以获取到数据
String startTime = timeRange.getString(0);
String endTime = timeRange.getString(1);
//输出打印一下,看到效果
System.out.println("Start Time: " + startTime);
System.out.println("End Time: " + endTime);
}
(4)效果演示,通过debug的形式进行了数据输出
三:总结
主要就是细心一点别导错包