package org.json; /* Public Domain. */ import java.io.StringWriter; /** * JSONStringer provides a quick and convenient way of producing JSON text. * The texts produced strictly conform to JSON syntax rules. No whitespace is * added, so the results are ready for transmission or storage. Each instance of * JSONStringer can produce one JSON text. *
* A JSONStringer instance provides a value method for appending
* values to the
* text, and a key
* method for adding keys before values in objects. There are array
* and endArray methods that make and bound array values, and
* object and endObject methods which make and bound
* object values. All of these methods return the JSONWriter instance,
* permitting cascade style. For example,
* myString = new JSONStringer()
* .object()
* .key("JSON")
* .value("Hello, World!")
* .endObject()
* .toString(); which produces the string
* {"JSON":"Hello, World!"}
*
* The first method called must be array or object.
* There are no methods for adding commas or colons. JSONStringer adds them for
* you. Objects and arrays can be nested up to 200 levels deep.
*
* This can sometimes be easier than using a JSONObject to build a string.
* @author JSON.org
* @version 2015-12-09
*/
public class JSONStringer extends JSONWriter {
/**
* Make a fresh JSONStringer. It can be used to build one JSON text.
*/
public JSONStringer() {
super(new StringWriter());
}
/**
* Return the JSON text. This method is used to obtain the product of the
* JSONStringer instance. It will return null if there was a
* problem in the construction of the JSON text (such as the calls to
* array were not properly balanced with calls to
* endArray).
* @return The JSON text.
*/
@Override
public String toString() {
return this.mode == 'd' ? this.writer.toString() : null;
}
}