Most visited

Recently visited

Added in API level 1

JSONTokener

public class JSONTokener
extends Object

java.lang.Object
   ↳ org.json.JSONTokener


将JSON( RFC 4627 )编码的字符串分析到相应的对象中。 这个班级的大多数客户只需要使用constructornextValue()方法。 用法示例:

 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。 以下所有语法错误都将被忽略:

每个tokener可用于解析单个JSON字符串。 这个类的实例不是线程安全的。 虽然这个类是非终结性的,但它不是为继承而设计的,也不应该被继承。 特别是,没有指定可覆盖方法的自我使用。 有关更多信息,请参见有效Java项目17“设计和文档或继承或禁止它”。

Summary

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)

如果它等于 c则返回下一个可用字符。

String next(int length)

返回输入的下一个 length字符。

char nextClean()

返回不是空白且不属于注释的下一个字符。

String nextString(char quote)

返回字符串,但不包括 quote ,无法解决沿途遇到的任何字符转义序列。

String nextTo(String excluded)

返回 trimmed字符的 trimmed字符串,但不包括第一个字符:

  • any character in excluded
  • a newline character '\n'
  • a carriage return '\r'

返回的字符串与此tokener的输入字符串共享其支持字符数组。

String nextTo(char excluded)

相当于 nextTo(String.valueOf(excluded))

Object nextValue()

返回输入中的下一个值。

void skipPast(String thru)

提前通过所有输入,直至包括下一次出现的 thru

char skipTo(char to)

提前通过所有输入,但不包括下一次出现的 to

JSONException syntaxError(String message)

返回包含给定消息加上当前位置和整个输入字符串的异常。

String toString()

返回当前位置和整个输入字符串。

Inherited methods

From class java.lang.Object

Public constructors

JSONTokener

Added in API level 1
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.

Public methods

back

Added in API level 1
void back ()

未读取输入的最新字符。 如果没有输入字符被读取,则输入不变。

dehexchar

Added in API level 1
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

more

Added in API level 1
boolean more ()

返回true,直到输入已耗尽。

Returns
boolean

next

Added in API level 1
char next ()

返回下一个可用字符,如果所有输入都已用尽,则返回空字符'\ 0'。 此方法的返回值对于包含字符'\ 0'的JSON字符串不明确。

Returns
char

next

Added in API level 1
char next (char c)

如果它等于c则返回下一个可用字符。 否则会引发异常。

Parameters
c char
Returns
char
Throws
JSONException

next

Added in API level 1
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.

nextClean

Added in API level 1
char nextClean ()

返回不是空白且不属于注释的下一个字符。 如果在找到这样的字符之前输入已耗尽,则返回空字符'\ 0'。 此方法的返回值对于包含字符'\ 0'的JSON字符串不明确。

Returns
char
Throws
JSONException

nextString

Added in API level 1
String nextString (char quote)

返回字符串,但不包括quote ,消除了沿途遇到的任何字符转义序列。 开幕报价应该已经阅读。 这会消耗结尾报价,但不包括在返回的字符串中。

Parameters
quote char: either ' or ".
Returns
String
Throws
JSONException

nextTo

Added in API level 1
String nextTo (String excluded)

返回 trimmed字符的 trimmed字符串,但不包括第一个字符:

  • any character in excluded
  • a newline character '\n'
  • a carriage return '\r'

返回的字符串与此tokener的输入字符串共享其支持字符数组。 如果对返回字符串的引用可能无限期地保留,则应先使用new String(result)先复制它以避免内存泄漏。

Parameters
excluded String
Returns
String a possibly-empty string

nextTo

Added in API level 1
String nextTo (char excluded)

相当于 nextTo(String.valueOf(excluded))

Parameters
excluded char
Returns
String

nextValue

Added in API level 1
Object nextValue ()

返回输入中的下一个值。

Returns
Object a JSONObject, JSONArray, String, Boolean, Integer, Long, Double or NULL.
Throws
JSONException if the input is malformed.

skipPast

Added in API level 1
void skipPast (String thru)

提前通过所有输入,直至包括下一次出现的thru 如果剩余的输入不包含thru ,则输入已耗尽。

Parameters
thru String

skipTo

Added in API level 1
char skipTo (char to)

提前通过所有输入,但不包括下一次出现的to 如果剩余的输入不包含to ,则输入保持不变。

Parameters
to char
Returns
char

syntaxError

Added in API level 1
JSONException syntaxError (String message)

返回包含给定消息加上当前位置和整个输入字符串的异常。

Parameters
message String
Returns
JSONException

toString

Added in API level 1
String toString ()

返回当前位置和整个输入字符串。

Returns
String a string representation of the object.

Hooray!