关于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依赖关于fastjson中JSONArray和JSONObject的区别?_第1张图片

  • 首先创建一个Map集合,并且添加一些数据 关于fastjson中JSONArray和JSONObject的区别?_第2张图片

 

  • 将集合转换为JSON格式字符串关于fastjson中JSONArray和JSONObject的区别?_第3张图片

 

  • 将JSON格式字符串转换为JSONObject对象关于fastjson中JSONArray和JSONObject的区别?_第4张图片

 

  • 我们发现JSONObject的 map 方法与Map集合的方法类似,因为他底层实现了Map接口,点进源码进行查看关于fastjson中JSONArray和JSONObject的区别?_第5张图片

 

  • 发现确实实现了 Map 接口,并且 put 方法是间接调用了 Map 的 put 方法,由此可见JSONObject 底层确实实现了 Map 集合接口关于fastjson中JSONArray和JSONObject的区别?_第6张图片

 

JSONArray 示例:

  • 首先创建几个 map集合并添加一些数据,将这些 map添加到 list 集合中关于fastjson中JSONArray和JSONObject的区别?_第7张图片

 

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

  • 发现确实实现了List集合,并且属性为list集合 
  • 所以我们使用遍历list集合的方式来遍历JSONArray对象关于fastjson中JSONArray和JSONObject的区别?_第9张图片

 

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

 

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

你可能感兴趣的:(java,后端)