public class JSONStringer extends Object
JSONObject.toString()
and JSONArray.toString()
. Most application
developers should use those methods directly and disregard this API. For example:JSONObject object = ... String json = object.toString();
Stringers only encode well-formed JSON strings. In particular:
array()
must have a matching
call to endArray()
and every call to object()
must have a matching call
to endObject()
.
value
calls, or by
nesting arrays or objects.
JSONException
.
This class provides no facility for pretty-printing (ie. indenting) output. To encode
indented output, use JSONObject.toString(int)
or
JSONArray.toString(int)
.
Some implementations of the API support at most 20 levels of nesting. Attempts to
create more than 20 levels of nesting may fail with a JSONException
.
Each stringer may be used to encode a single top level value. 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.
Constructor and Description |
---|
JSONStringer() |
Modifier and Type | Method and Description |
---|---|
JSONStringer |
array()
Begins encoding a new array.
|
JSONStringer |
endArray()
Ends encoding the current array.
|
JSONStringer |
endObject()
Ends encoding the current object.
|
JSONStringer |
key(String name)
Encodes the key (property name) to this stringer.
|
JSONStringer |
object()
Begins encoding a new object.
|
String |
toString()
Returns the encoded JSON string.
|
JSONStringer |
value(boolean value)
Encodes
value to this stringer. |
JSONStringer |
value(double value)
Encodes
value to this stringer. |
JSONStringer |
value(long value)
Encodes
value to this stringer. |
JSONStringer |
value(Object value)
Encodes
value . |
public JSONStringer array() throws JSONException
endArray()
.JSONException
- if processing of json failedpublic JSONStringer endArray() throws JSONException
JSONException
- if processing of json failedpublic JSONStringer object() throws JSONException
endObject()
.JSONException
- if processing of json failedpublic JSONStringer endObject() throws JSONException
JSONException
- if processing of json failedpublic JSONStringer value(Object value) throws JSONException
value
.value
- a JSONObject
, JSONArray
, String, Boolean, Integer,
Long, Double or null. May not be NaNs
or
infinities
.JSONException
- if processing of json failedpublic JSONStringer value(boolean value) throws JSONException
value
to this stringer.value
- the value to encodeJSONException
- if processing of json failedpublic JSONStringer value(double value) throws JSONException
value
to this stringer.value
- a finite value. May not be NaNs
or
infinities
.JSONException
- if processing of json failedpublic JSONStringer value(long value) throws JSONException
value
to this stringer.value
- the value to encodeJSONException
- if processing of json failedpublic JSONStringer key(String name) throws JSONException
name
- the name of the forthcoming value. May not be null.JSONException
- if processing of json failedpublic String toString()
If invoked with unterminated arrays or unclosed objects, this method's return value is undefined.
Warning: although it contradicts the general contract of
Object.toString()
, this method returns null if the stringer contains no data.