java.lang.Object | |
↳ | com.neomades.json.JSONTokener |
A JSONTokener takes a source string and extracts characters and tokens from it. It is used by the JSONObject and JSONArray constructors to parse JSON source strings.
Parses a JSON (RFC 4627) encoded string into the corresponding object. Most clients of this class will use only need the constructor and nextValue() method. Example usage:
String json = "{" + " \"query\": \"Pizza\", " + " \"locations\": [ 94043, 90210 ] " + "}"; JSONObject object = (JSONObject) new JSONTokener(json).nextValue(); String query = object.getString("query"); JSONArray locations = object.getJSONArray("locations");
For best interoperability and performance use JSON that complies with RFC 4627, such as that generated by JSONStringer. For legacy reasons this parser is lenient, so a successful parse does not indicate that the input string was valid JSON. All of the following syntax errors will be ignored:
//
or #
and
ending with a newline character./*
and ending with
*
/
. Such comments may not be nested.'
single quoted'
.
0x
or 0X
.
0
.;
.null
was the omitted value.=
or =>
.;
.Each tokener may be used to parse a single JSON string. Instances of this class are not thread safe. Although this class is nonfinal, it was not designed for inheritance and should not be subclassed. In particular, self-use by overrideable methods is not specified. See Effective Java Item 17, "Design and Document or inheritance or else prohibit it" for further information.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
JSONTokener(String s)
Construct a JSONTokener from a string.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
void |
back()
Back up one character.
| ||||||||||
static int |
dehexchar(char c)
Get the hex value of a character (base16).
| ||||||||||
boolean |
more()
Determine if the source string still contains characters that next() can
consume.
| ||||||||||
char |
next()
Get the next character in the source string.
| ||||||||||
char |
next(char c)
Consume the next character, and check that it matches a specified character.
| ||||||||||
String |
next(int n)
Get the next n characters.
| ||||||||||
char |
nextClean()
Get the next char in the string, skipping whitespace and comments
(slashslash, slashstar, and hash).
| ||||||||||
String |
nextString(char quote)
Return the characters up to the next close quote character.
| ||||||||||
String |
nextTo(String delimiters)
Get the text up but not including one of the specified delimeter characters
or the end of line, whichever comes first.
| ||||||||||
String |
nextTo(char d)
Get the text up but not including the specified character or the end of line,
whichever comes first.
| ||||||||||
Object |
nextValue()
Get the next value.
| ||||||||||
boolean |
skipPast(String to)
Skip characters until past the requested string.
| ||||||||||
char |
skipTo(char to)
Skip characters until the next character is the requested character.
| ||||||||||
JSONException |
syntaxError(String message)
Make a JSONException to signal a syntax error.
| ||||||||||
String |
toString()
Make a printable string of this JSONTokener.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Back up one character. This provides a sort of lookahead capability, so that you can test for a digit or letter before attempting to parse the next number or identifier.
Get the hex value of a character (base16).
c | A character between '0' and '9' or between 'A' and 'F' or between 'a' and 'f'. |
---|
Determine if the source string still contains characters that next() can consume.
Get the next character in the source string.
Consume the next character, and check that it matches a specified character.
c | The character to match. |
---|
JSONException | if the character does not match. |
---|
Get the next n characters.
n | The number of characters to take. |
---|
JSONException | Substring bounds error if there are not n characters remaining in the source string. |
---|
Get the next char in the string, skipping whitespace and comments (slashslash, slashstar, and hash).
JSONException | |
JSONException |
Return the characters up to the next close quote character. Backslash processing is done. The formal JSON format does not allow strings in single quotes, but an implementation is allowed to accept them.
quote | The quoting character, either " (double
quote) or ' (single
quote). |
---|
JSONException | Unterminated string. |
---|
Get the text up but not including one of the specified delimeter characters or the end of line, whichever comes first.
delimiters | A set of delimiter characters. |
---|
Get the text up but not including the specified character or the end of line, whichever comes first.
d | A delimiter character. |
---|
Get the next value. The value can be a Boolean, Double, Integer, JSONArray, JSONObject, Long, or String, or the JSONObject.NULL object.
JSONException | If syntax error. |
---|
Skip characters until past the requested string. If it is not found, we are left at the end of the source.
to | A string to skip past. |
---|
Skip characters until the next character is the requested character. If the requested character is not found, no characters are skipped.
to | A character to skip to. |
---|
Make a JSONException to signal a syntax error.
message | The error message. |
---|
Make a printable string of this JSONTokener.