遍历json对象_JSON的多种使用方式

e8d631a11a67f5ab71fd9e0ef0b18c56.png

1. 常用的JSON转换

  • JSONObject 转 JSON 字符串

bb73988cec20f012b40fd17b1a9a037b.png
  • JSON字符串转JSON

b5fb1b75a0351c2b57d329e58453b09e.png
  • 实体类转JSON

1446249d7e75bbfcc98d81e62ef357b5.png
  • Map转JSON

528154fe512947c41ff943eb1c3d01bf.png
  • JSON转Map

0bcfe69ece4bf480989b113cf7632404.png

2. 将多个JSON合并一个

4a837e97e4a1587047f031bcad991019.png

json1,json2 为JSONObject。 最终的代码格式:

86275e2b26bbc741ec9e247212423fbc.png

3.JSON拆分

不同的需求有不同的做法,以下提供两种解决思路

  • 定义两个或多个JSON进行put和remove 比如明确需要哪些字段的时候可以定义一个数组用来存放key信息。存放和删除的时候只需要遍历数组就可以。
  • 遍历JSON,获取key,value再重新put

4.JSON遍历

  1. 定义一个工具类,获取key和value

aa8fea5610bc609db41668c51198db5d.png

2. JSONArray遍历的方式有很多种

    • for

d538d68c95d65c2aa94988c7f5799f19.png
    • foreach

d9198466e901ae93ee4aed55a7f29745.png
    • Iterator

a60f61824fd23ad48f3f91f5dcd0c0b7.png

5.JSONPath

另外向大家推荐一个非常好用的工具:JSONPath。

JSONPath是一种简单的方法来提取给定JSON的部分内容,使用方式类似于正则表达式。

简单描述下使用方法已经自己使用的案例 pom文件依赖:

3df450aaa59c646814c1266db3ec1c2d.png

JsonPath表达式总是以与XPath表达式结合使用XML文档相同的方式引用JSON结构。

JsonPath中的“根成员对象”始终称为$,无论是对象还是数组。

JsonPath表达式可以使用点表示法。

这里有个表格,说明JSONPath语法元素和对应XPath元素的对比。

48aceb560d2943001459ec33c9c0cc44.png

官方案例:

aa86bb976468e763c09ed16282e8a25b.png

4029de5da26c814874c9cd4d4d226adf.png

详细大家还是参照官方解说。 下面是我写的案例:

9e3bb2f2668e27ded5980856984c96e2.png

e8f4e23e8a183a7c3e9acebbbb22fc62.png

需要注意的是这里的JSONArray是JSONPath的,所以导包是

net.minidev.json.JSONPath JSON格式不会变,所以可以转换为alibaba的JSONArray:

8e89d59e14112ad4e1d766898498201a.png

这里要注意一点也是我踩过的坑:如果获取一个JSONObject下有多个同名的JSONArray,那么返回的[]也是多个。要先遍历获取到的数据,在取其中的一个JSON块。

感谢各位的观看,如果有不对的地方或者是好的建议,还请各位大佬指教。后期如果用到其他的JSON相关的也会更新文章。

作者:LeeShaoQing
链接: https:// juejin.cn/post/69186281 96636164103
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值