.. java:import:: java.io IOException .. java:import:: java.io Writer JSONWriter ========== .. java:package:: org.json :noindex: .. java:type:: public class JSONWriter JSONWriter 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 JSONWriter can produce one JSON text. A JSONWriter 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 a cascade style. For example, .. parsed-literal:: new JSONWriter(myWriter) .object() .key("JSON") .value("Hello, World!") .endObject(); which writes .. parsed-literal:: {"JSON":"Hello, World!"} The first method called must be \ ``array``\ or \ ``object``\ . There are no methods for adding commas or colons. JSONWriter adds them for you. Objects and arrays can be nested up to 20 levels deep. This can sometimes be easier than using a JSONObject to build a string. :author: JSON.org Fields ------ mode ^^^^ .. java:field:: protected char mode :outertype: JSONWriter The current mode. Values: 'a' (array), 'd' (done), 'i' (initial), 'k' (key), 'o' (object). writer ^^^^^^ .. java:field:: protected Writer writer :outertype: JSONWriter The writer that will receive the output. Constructors ------------ JSONWriter ^^^^^^^^^^ .. java:constructor:: public JSONWriter(Writer w) :outertype: JSONWriter Make a fresh JSONWriter. It can be used to build one JSON text. Methods ------- array ^^^^^ .. java:method:: public JSONWriter array() throws JSONException :outertype: JSONWriter Begin appending a new array. All values until the balancing \ ``endArray``\ will be appended to this array. The \ ``endArray``\ method must be called to mark the array's end. :throws JSONException: If the nesting is too deep, or if the object is started in the wrong place (for example as a key or after the end of the outermost array or object). :return: this endArray ^^^^^^^^ .. java:method:: public JSONWriter endArray() throws JSONException :outertype: JSONWriter End an array. This method most be called to balance calls to \ ``array``\ . :throws JSONException: If incorrectly nested. :return: this endObject ^^^^^^^^^ .. java:method:: public JSONWriter endObject() throws JSONException :outertype: JSONWriter End an object. This method most be called to balance calls to \ ``object``\ . :throws JSONException: If incorrectly nested. :return: this key ^^^ .. java:method:: public JSONWriter key(String string) throws JSONException :outertype: JSONWriter Append a key. The key will be associated with the next value. In an object, every value must be preceded by a key. :param string: A key string. :throws JSONException: If the key is out of place. For example, keys do not belong in arrays or if the key is null. :return: this object ^^^^^^ .. java:method:: public JSONWriter object() throws JSONException :outertype: JSONWriter Begin appending a new object. All keys and values until the balancing \ ``endObject``\ will be appended to this object. The \ ``endObject``\ method must be called to mark the object's end. :throws JSONException: If the nesting is too deep, or if the object is started in the wrong place (for example as a key or after the end of the outermost array or object). :return: this value ^^^^^ .. java:method:: public JSONWriter value(boolean b) throws JSONException :outertype: JSONWriter Append either the value \ ``true``\ or the value \ ``false``\ . :param b: A boolean. :throws JSONException: :return: this value ^^^^^ .. java:method:: public JSONWriter value(double d) throws JSONException :outertype: JSONWriter Append a double value. :param d: A double. :throws JSONException: If the number is not finite. :return: this value ^^^^^ .. java:method:: public JSONWriter value(long l) throws JSONException :outertype: JSONWriter Append a long value. :param l: A long. :throws JSONException: :return: this value ^^^^^ .. java:method:: public JSONWriter value(Object object) throws JSONException :outertype: JSONWriter Append an object value. :param object: The object to append. It can be null, or a Boolean, Number, String, JSONObject, or JSONArray, or an object that implements JSONString. :throws JSONException: If the value is out of sequence. :return: this