JSONObject(String json)
throws
JSONException {
this ( new JSONTokener(json)); |
} |
不难发现JSONObject(Strings)这个构造函数其实并没有做什么工作,只是直接调用了JSONObject的另一个构造函数:
public
case '{':
return readObject();
case '[':
return readArray();
case '\'':
case '"':
return nextString((char) c);
default:
JSONObject(JSONTokener readFrom)
throws
JSONException {
|
Objectobject = readFrom.nextValue(); |
if (object instanceof JSONObject){
|
this .nameValuePairs= ((JSONObject) object).nameValuePairs; |
} else {
|
throw JSON.typeMismatch(object, "JSONObject" ); |
} |
} |
这个方法也很简单只是调用了JSONToker类的nextValue方法然后把该方法得到的JSONToker的HanshMap对象nameValuePairs赋给JSONObject的nameValuePairs,所以重点在JSONToker的nextValue()方法。
nextValue()的源码:
public Object nextValue() throws JSONException {
int c =
nextCleanInternal();
switch (c) {
case -1:
throw syntaxError("End of input");