我一直觉得JSONObject和JSONArray是JDK集合部分的延伸,它们与JDK的List和Map一脉相承。通过研究JSONObject和JSONArray的结构,我们顺便也复习一下JDK的内容。
首先看一下JSONObject和JSONArray 的结构:final class JSONObject extends AbstractJSON implements JSON, Map, Comparablefinal 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 m);void clear();SetkeySet();Collection values();Set > entrySet();
上面的一个函数引出了另外一个接口:Entry<K,V>
再接着看一下List接口:interface Listextends Collection Interface Collection extends Iterable
在List接口中要注意:
ListIteratorlistIterator();ListIterator listIterator(int index);
ListIterator接口实现了前后移动的功能。比Iterator接口的功能更强大。