Most visited

Recently visited

Added in API level 1

JSONTokener

public class JSONTokener
extends Object

java.lang.Object
   ↳ org.json.JSONTokener


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:

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.

Summary

Public constructors

JSONTokener(String in)

Public methods

void back()

Unreads the most recent character of input.

static int dehexchar(char hex)

Returns the integer [0..15] value for the given hex character, or -1 for non-hex input.

boolean more()

Returns true until the input has been exhausted.

char next()

Returns the next available character, or the null character '\0' if all input has been exhausted.

char next(char c)

Returns the next available character if it equals c.

String next(int length)

Returns the next length characters of the input.

char nextClean()

Returns the next character that is not whitespace and does not belong to a comment.

String nextString(char quote)

Returns the string up to but not including quote, unescaping any character escape sequences encountered along the way.

String nextTo(String excluded)

Returns the trimmed string holding the characters up to but not including the first of:

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

The returned string shares its backing character array with this tokener's input string.

String nextTo(char excluded)

Equivalent to nextTo(String.valueOf(excluded)).

Object nextValue()

Returns the next value from the input.

void skipPast(String thru)

Advances past all input up to and including the next occurrence of thru.

char skipTo(char to)

Advances past all input up to but not including the next occurrence of to.

JSONException syntaxError(String message)

Returns an exception containing the given message plus the current position and the entire input string.

String toString()

Returns the current position and the entire input string.

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 ()

Unreads the most recent character of input. If no input characters have been read, the input is unchanged.

dehexchar

Added in API level 1
int dehexchar (char hex)

Returns the integer [0..15] value for the given hex character, or -1 for non-hex input.

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 ()

Returns true until the input has been exhausted.

Returns
boolean

next

Added in API level 1
char next ()

Returns the next available character, or the null character '\0' if all input has been exhausted. The return value of this method is ambiguous for JSON strings that contain the character '\0'.

Returns
char

next

Added in API level 1
char next (char c)

Returns the next available character if it equals c. Otherwise an exception is thrown.

Parameters
c char
Returns
char
Throws
JSONException

next

Added in API level 1
String next (int length)

Returns the next length characters of the input.

The returned string shares its backing character array with this tokener's input string. If a reference to the returned string may be held indefinitely, you should use new String(result) to copy it first to avoid memory leaks.

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 ()

Returns the next character that is not whitespace and does not belong to a comment. If the input is exhausted before such a character can be found, the null character '\0' is returned. The return value of this method is ambiguous for JSON strings that contain the character '\0'.

Returns
char
Throws
JSONException

nextString

Added in API level 1
String nextString (char quote)

Returns the string up to but not including quote, unescaping any character escape sequences encountered along the way. The opening quote should have already been read. This consumes the closing quote, but does not include it in the returned string.

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

nextTo

Added in API level 1
String nextTo (String excluded)

Returns the trimmed string holding the characters up to but not including the first of:

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

The returned string shares its backing character array with this tokener's input string. If a reference to the returned string may be held indefinitely, you should use new String(result) to copy it first to avoid memory leaks.

Parameters
excluded String
Returns
String a possibly-empty string

nextTo

Added in API level 1
String nextTo (char excluded)

Equivalent to nextTo(String.valueOf(excluded)).

Parameters
excluded char
Returns
String

nextValue

Added in API level 1
Object nextValue ()

Returns the next value from the input.

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)

Advances past all input up to and including the next occurrence of thru. If the remaining input doesn't contain thru, the input is exhausted.

Parameters
thru String

skipTo

Added in API level 1
char skipTo (char to)

Advances past all input up to but not including the next occurrence of to. If the remaining input doesn't contain to, the input is unchanged.

Parameters
to char
Returns
char

syntaxError

Added in API level 1
JSONException syntaxError (String message)

Returns an exception containing the given message plus the current position and the entire input string.

Parameters
message String
Returns
JSONException

toString

Added in API level 1
String toString ()

Returns the current position and the entire input string.

Returns
String a string representation of the object.

Hooray!