json学习系列(6)JSONObject和JSONArray是JDK的集合部分延伸
我一直觉得JSONObject和JSONArray是JDK集合部分的延伸,它们与JDK的List和Map一脉相承。通过研究JSONObject和JSONArray的结构,我们顺便也复习一下JDK的内容。
首先看一下JSONObject和JSONArray 的结构:
final class JSONObject extends AbstractJSON implements JSON, Map, Comparable
final class JSONArray extends AbstractJSON implements JSON, List, Comparable
首先看看JSON接口:JSON extends Serializable,这一点表明JSONObject和JSONArray是可以实现序列化的。JSON接口的具体的定义也是针对很常用的功能:
boolean isArray();
boolean isEmpty();
int size();//对于JSONObject来说是Bean属性的个数,对于JSONArray来说是Bean的个数
String toString( int indentFactor );
String toString( int indentFactor, int indent );
Writer write( Writer writer );
接着看一下Map接口:
int size();
boolean isEmpty();
boolean containsKey(Object key);
boolean containsValue(Object value);
V get(Object key);
V put(K key, V value);
V remove(Object key);
void putAll(Map<? extends K, ? extends V> m);
void clear();
Set<K> keySet();
Collection<V> values();
Set<Map.Entry<K, V>> entrySet();
上面的一个函数引出了另外一个接口:Entry<K,V>
再接着看一下List接口:
interface List<E> extends Collection<E>
Interface Collection<E> extends Iterable<E>
在List接口中要注意:
ListIterator<E> listIterator();
ListIterator<E> listIterator(int index);
ListIterator接口实现了前后移动的功能。比Iterator接口的功能更强大。
json学习系列(6)JSONObject和JSONArray是JDK的集合部分延伸的更多相关文章
- json学习系列(8)JSON与JAVA数据的相互转换实例
一.完整案例 先定义一个java实体对象,如下: package com.pcitc.json.cnblog; /** * SimInfo实体对象 * * @Description * @author ...
- json学习系列(3)-JSONObject的过滤设置
我们通常对一个json串和java对象进行互转时,经常会有选择性的过滤掉一些属性值.例如下面的实体类: package com.pcitc.json; /** * Person实体类 * * @Des ...
- json学习系列(2)-生成JSONObject的方法
生成JSONObject一般有两种方式,通过javabean或者map类型来生成.如下面的例子: 先定义一个User实体类: package com.pcitc.json; /** * 用户实体类 * ...
- android 读取json数据(遍历JSONObject和JSONArray)(转)
public String getJson(){ String jsonString = "{\"FLAG\":\"flag\",\"MES ...
- json学习系列(5)-json错误解析net.sf.ezmorph.bean.MorphDynaBean cannot be cast to
最近在使用json的时候,报了下面的错误: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to java.lang.String 这种错误非常常见, ...
- 复杂json的解析:jsonobject与jsonArray的使用
String parameter = { success : 0, errorMsg : "错误消息", data : { total : "总记录数", ro ...
- json学习系列(7)JSONBuilder的用法
JSONBuilder可以向文件中写入写入json字符串.如下面的例子: public class Test { public static void main(String args[]) thro ...
- json学习系列(4)-JSONString对象的optXXX方法的使用
在JSONObject获取value有多种方法,如果使用 getXxx()类型的方法获取value,如getString("key").如果key不存在的话,这些方法无一例外的都会 ...
- json学习系列(1)-使用json所要用到的jar包下载
内容来源于互联网. json是个非常重要的数据结构,在web开发中应用十分广泛.每个开发者都应该好好的去研究一下json的底层实现.在使用json之前首先要明白需要哪些jar文件,初次使用的时候很容易 ...
随机推荐
- VS2008+Qt+助手 智能提示不显示、Qt关键字不高亮的解决办法【已解决】
笔者使用的开发环境是VS2008+Qt4.8.5+VAssistX,有时候会出现代码关键字不能高亮显示,并且助手的智能提示不显示.问题如下 解决的办法是在助手的选项中设置其搜索路径,助手的设置通过VS ...
- MyBatis多数据源配置(读写分离)
原文:http://blog.csdn.net/isea533/article/details/46815385 MyBatis多数据源配置(读写分离) 首先说明,本文的配置使用的最直接的方式,实际用 ...
- C 结构体小结
看了三天结构体,是时候总结一下了. 关于结构体的声明: struct Student { ]; char sex; int age; ]; }; /*然后定义一个Student 类型的 student ...
- ios图标和默认图像
Icon.png和Default.png是两个重要的图像文件.Icon.png充当应用程序的图标,这些图标用于在SpringBoard主屏幕上表示应用程序.Default.png(也称"启动 ...
- string s = null 和 string s = “”的区别
string s = null; 表示一个空串,没有占用了空间,不在内存中开辟空间 string s = "";在内存中开辟空间,但空间中没有值(""也是一个字 ...
- TestPointer
C++ Code 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...
- 37.寻找丑数[Ugly numbers]
[题目] 我们把只包含质因子2.3和5的数称作丑数(Ugly Number),例如:2,3,4,5,6,8,9,10,12,15,等,习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第1500个丑 ...
- 14.约瑟夫环问题[JosephusProblem]
[题目] n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字).当一个数字删除后,从被删除数字的下一个继续删除 ...
- 转载一篇关于ios copy的文章
由于原文创作时间较早,一些内容不实用了,我对其进行了加工,去掉了一部分内容,添加了一点注释. 原文连接 http://www.cnblogs.com/ydhliphonedev/archive/201 ...
- 5.前端笔记之jquery部分
一.简介 jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多).jQuery在2006年1月由美国人John Resig在纽约的 ...