com.dimajix.shaded.json.JSONStringer Maven / Gradle / Ivy
package com.dimajix.shaded.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;
}
}