public class JSONTokener
extends Object
java.lang.Object | |
↳ | org.json.JSONTokener |
将JSON( RFC 4627 )编码的字符串分析到相应的对象中。 这个班级的大多数客户只需要使用constructor
和nextValue()
方法。 用法示例:
String json = "{" + " \"query\": \"Pizza\", " + " \"locations\": [ 94043, 90210 ] " + "}"; JSONObject object = (JSONObject) new JSONTokener(json).nextValue(); String query = object.getString("query"); JSONArray locations = object.getJSONArray("locations");
为了获得最佳的互操作性和性能,请使用符合RFC 4627的JSON,例如由JSONStringer
生成的JSONStringer
。 由于遗留的原因,这个解析器是宽松的,所以成功的解析并不表示输入字符串是有效的JSON。 以下所有语法错误都将被忽略:
//
or #
and ending with a newline character. /*
and ending with *
/
. Such comments may not be nested. 'single quoted'
. 0x
or 0X
. 0
. ;
. =
or =>
. ;
. 每个tokener可用于解析单个JSON字符串。 这个类的实例不是线程安全的。 虽然这个类是非终结性的,但它不是为继承而设计的,也不应该被继承。 特别是,没有指定可覆盖方法的自我使用。 有关更多信息,请参见有效Java项目17“设计和文档或继承或禁止它”。
Public constructors |
|
---|---|
JSONTokener(String in) |
Public methods |
|
---|---|
void |
back() 未读取输入的最新字符。 |
static int |
dehexchar(char hex) 返回给定十六进制字符的整数[0..15]值,或者对于非十六进制输入返回-1。 |
boolean |
more() 返回true,直到输入已耗尽。 |
char |
next() 返回下一个可用字符,如果所有输入都已用尽,则返回空字符'\ 0'。 |
char |
next(char c) 如果它等于 |
String |
next(int length) 返回输入的下一个 |
char |
nextClean() 返回不是空白且不属于注释的下一个字符。 |
String |
nextString(char quote) 返回字符串,但不包括 |
String |
nextTo(String excluded) 返回
返回的字符串与此tokener的输入字符串共享其支持字符数组。 |
String |
nextTo(char excluded) 相当于 |
Object |
nextValue() 返回输入中的下一个值。 |
void |
skipPast(String thru) 提前通过所有输入,直至包括下一次出现的 |
char |
skipTo(char to) 提前通过所有输入,但不包括下一次出现的 |
JSONException |
syntaxError(String message) 返回包含给定消息加上当前位置和整个输入字符串的异常。 |
String |
toString() 返回当前位置和整个输入字符串。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
JSONTokener (String in)
Parameters | |
---|---|
in |
String : JSON encoded string. Null is not permitted and will yield a tokener that throws NullPointerExceptions when methods are called. |
int dehexchar (char hex)
返回给定十六进制字符的整数[0..15]值,或者对于非十六进制输入返回-1。
Parameters | |
---|---|
hex |
char : a character in the ranges [0-9], [A-F] or [a-f]. Any other character will yield a -1 result. |
Returns | |
---|---|
int |
char next ()
返回下一个可用字符,如果所有输入都已用尽,则返回空字符'\ 0'。 此方法的返回值对于包含字符'\ 0'的JSON字符串不明确。
Returns | |
---|---|
char |
char next (char c)
如果它等于c
则返回下一个可用字符。 否则会引发异常。
Parameters | |
---|---|
c |
char
|
Returns | |
---|---|
char |
Throws | |
---|---|
JSONException |
String next (int length)
返回输入的下一个 length
字符。
返回的字符串与此tokener的输入字符串共享其支持字符数组。 如果对返回字符串的引用可能无限期地保留,则应先使用new String(result)
将其复制以避免内存泄漏。
Parameters | |
---|---|
length |
int
|
Returns | |
---|---|
String |
Throws | |
---|---|
JSONException |
if the remaining input is not long enough to satisfy this request. |
char nextClean ()
返回不是空白且不属于注释的下一个字符。 如果在找到这样的字符之前输入已耗尽,则返回空字符'\ 0'。 此方法的返回值对于包含字符'\ 0'的JSON字符串不明确。
Returns | |
---|---|
char |
Throws | |
---|---|
JSONException |
String nextString (char quote)
返回字符串,但不包括quote
,消除了沿途遇到的任何字符转义序列。 开幕报价应该已经阅读。 这会消耗结尾报价,但不包括在返回的字符串中。
Parameters | |
---|---|
quote |
char : either ' or ". |
Returns | |
---|---|
String |
Throws | |
---|---|
JSONException |
String nextTo (String excluded)
返回 trimmed
字符的 trimmed
字符串,但不包括第一个字符:
excluded
返回的字符串与此tokener的输入字符串共享其支持字符数组。 如果对返回字符串的引用可能无限期地保留,则应先使用new String(result)
先复制它以避免内存泄漏。
Parameters | |
---|---|
excluded |
String
|
Returns | |
---|---|
String |
a possibly-empty string |
String nextTo (char excluded)
相当于 nextTo(String.valueOf(excluded))
。
Parameters | |
---|---|
excluded |
char
|
Returns | |
---|---|
String |
Object nextValue ()
返回输入中的下一个值。
Returns | |
---|---|
Object |
a JSONObject , JSONArray , String, Boolean, Integer, Long, Double or NULL . |
Throws | |
---|---|
JSONException |
if the input is malformed. |
void skipPast (String thru)
提前通过所有输入,直至包括下一次出现的thru
。 如果剩余的输入不包含thru
,则输入已耗尽。
Parameters | |
---|---|
thru |
String
|
char skipTo (char to)
提前通过所有输入,但不包括下一次出现的to
。 如果剩余的输入不包含to
,则输入保持不变。
Parameters | |
---|---|
to |
char
|
Returns | |
---|---|
char |
JSONException syntaxError (String message)
返回包含给定消息加上当前位置和整个输入字符串的异常。
Parameters | |
---|---|
message |
String
|
Returns | |
---|---|
JSONException |
String toString ()
返回当前位置和整个输入字符串。
Returns | |
---|---|
String |
a string representation of the object. |