- 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可以更好的操作数据
- 实践一下,发现确实可以
第一次写文章,有的地方还不足,希望大家理解!!!