关于fastjson中JSONArray和JSONObject的区别?

  • JSONArray的语法:[{ "id":1001,"name":"Tom" },{ "id":1002,"name":"John"},{ "id":"1003","name":"Jack"}],相当于一个list中包含了多个对象json数据
  • JSONObject的语法:{ "id":1001,"name":"Tom" },相当于一个对象json数据
  • 一个JSONArray对象中包含了多个JSONObject数据,可以将JSONArray遍历得到每个JSONObject对象

 JSONObject 示例:

  • 首先添加fastJson依赖

  • 首先创建一个Map集合,并且添加一些数据 

 

  • 将集合转换为JSON格式字符串

 

  • 将JSON格式字符串转换为JSONObject对象

 

  • 我们发现JSONObject的 map 方法与Map集合的方法类似,因为他底层实现了Map接口,点进源码进行查看

 

  • 发现确实实现了 Map 接口,并且 put 方法是间接调用了 Map 的 put 方法,由此可见JSONObject 底层确实实现了 Map 集合接口

 

JSONArray 示例:

  • 首先创建几个 map集合并添加一些数据,将这些 map添加到 list 集合中

 

  • 将 list 集合转换为 json 字符串再转换为 JSONArray 对象
  • 遍历此集合,发现了一个又熟悉的方法size(),这我们又不由得猜想和list集合有没有关系,于是点进源码查看

  • 发现确实实现了List集合,并且属性为list集合 
  • 所以我们使用遍历list集合的方式来遍历JSONArray对象

 

  • 那问题来了,为什么每个元素是Object,又提供一个getJSONObject()方法来获得JSONObject对象呢?
    • 因为前面也说了,JSONObject对象底层为Map集合,当我们获得JSONObject对象时,可以使用键值对的方法来获得数据,这样再实际开发中方便不少类型转换操作
    • 另外在有些项目设计中,从数据库取出的数据集合,是以List<Map<String,Object>>这种方式保存的,所以使用JSONObject可以更好的操作数据
  • 实践一下,发现确实可以

 

第一次写文章,有的地方还不足,希望大家理解!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值