org.json

## Class JSONML

- java.lang.Object
- - org.json.JSONML

    public class JSONML
    extends Object

This provides static methods to convert an XML text into a JSONArray or JSONObject, and to covert a JSONArray or JSONObject into an XML text using the JsonML transform.

Version:
  2016-01-30
Author:
  JSON.org

### Constructor Summary

Constructors
Constructor and Description
`JSONML()` Constructs a new JSONML object.

### Method Summary

All Methods Static Methods Concrete Methods
`static JSONArray` `toJSONArray(String string)` Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform.
`static JSONArray` `toJSONArray(String string, boolean keepStrings)` Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform.
`static JSONArray` `toJSONArray(String string, JSONMLParserConfiguration config)` Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform.
`static JSONArray` `toJSONArray(XMLTokener x)` Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform.
`static JSONArray` `toJSONArray(XMLTokener x, boolean keepStrings)` Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform.
`static JSONArray` `toJSONArray(XMLTokener x, JSONMLParserConfiguration config)` Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform.
`static JSONObject` `toJSONObject(String string)` Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform.
`static JSONObject` `toJSONObject(String string, boolean keepStrings)` Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform.
`static JSONObject` `toJSONObject(String string, JSONMLParserConfiguration config)` Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform.
`static JSONObject` `toJSONObject(XMLTokener x)` Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform.
`static JSONObject` `toJSONObject(XMLTokener x, boolean keepStrings)` Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform.
`static JSONObject` `toJSONObject(XMLTokener x, JSONMLParserConfiguration config)` Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform.
`static String` `toString(JSONArray ja)` Reverse the JSONML transformation, making an XML text from a JSONArray.
`static String` `toString(JSONObject jo)` Reverse the JSONML transformation, making an XML text from a JSONObject.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### JSONML

    public JSONML()

Constructs a new JSONML object.

### Method Detail

#### toJSONArray

    public static JSONArray toJSONArray(String string)
                                 throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform. Each XML tag is represented as a JSONArray in which the first element is the tag name. If the tag has attributes, then the second element will be JSONObject containing the name/value pairs. If the tag contains children, then strings and JSONArrays will represent the child tags. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `string` - The source string.
Returns:
  A JSONArray containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONArray

#### toJSONArray

    public static JSONArray toJSONArray(String string,
                                        boolean keepStrings)
                                 throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform. Each XML tag is represented as a JSONArray in which the first element is the tag name. If the tag has attributes, then the second element will be JSONObject containing the name/value pairs. If the tag contains children, then strings and JSONArrays will represent the child tags. As opposed to toJSONArray this method does not attempt to convert any text node or attribute value to any type but just leaves it as a string. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `string` - The source string.
  `keepStrings` - If true, then values will not be coerced into boolean or numeric values and will instead be left as strings
Returns:
  A JSONArray containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONArray

#### toJSONArray

    public static JSONArray toJSONArray(String string,
                                        JSONMLParserConfiguration config)
                                 throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform. Each XML tag is represented as a JSONArray in which the first element is the tag name. If the tag has attributes, then the second element will be JSONObject containing the name/value pairs. If the tag contains children, then strings and JSONArrays will represent the child tags. As opposed to toJSONArray this method does not attempt to convert any text node or attribute value to any type but just leaves it as a string. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `string` - The source string.
  `config` - The parser configuration: JSONMLParserConfiguration.ORIGINAL is the default behaviour; JSONMLParserConfiguration.KEEP_STRINGS means values will not be coerced into boolean or numeric values and will instead be left as strings
Returns:
  A JSONArray containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONArray

#### toJSONArray

    public static JSONArray toJSONArray(XMLTokener x,
                                        JSONMLParserConfiguration config)
                                 throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform. Each XML tag is represented as a JSONArray in which the first element is the tag name. If the tag has attributes, then the second element will be JSONObject containing the name/value pairs. If the tag contains children, then strings and JSONArrays will represent the child content and tags. As opposed to toJSONArray this method does not attempt to convert any text node or attribute value to any type but just leaves it as a string. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `x` - An XMLTokener.
  `config` - The parser configuration: JSONMLParserConfiguration.ORIGINAL is the default behaviour; JSONMLParserConfiguration.KEEP_STRINGS means values will not be coerced into boolean or numeric values and will instead be left as strings
Returns:
  A JSONArray containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONArray

#### toJSONArray

    public static JSONArray toJSONArray(XMLTokener x,
                                        boolean keepStrings)
                                 throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform. Each XML tag is represented as a JSONArray in which the first element is the tag name. If the tag has attributes, then the second element will be JSONObject containing the name/value pairs. If the tag contains children, then strings and JSONArrays will represent the child content and tags. As opposed to toJSONArray this method does not attempt to convert any text node or attribute value to any type but just leaves it as a string. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `x` - An XMLTokener.
  `keepStrings` - If true, then values will not be coerced into boolean or numeric values and will instead be left as strings
Returns:
  A JSONArray containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONArray

#### toJSONArray

    public static JSONArray toJSONArray(XMLTokener x)
                                 throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform. Each XML tag is represented as a JSONArray in which the first element is the tag name. If the tag has attributes, then the second element will be JSONObject containing the name/value pairs. If the tag contains children, then strings and JSONArrays will represent the child content and tags. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `x` - An XMLTokener.
Returns:
  A JSONArray containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONArray

#### toJSONObject

    public static JSONObject toJSONObject(String string)
                                   throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform. Each XML tag is represented as a JSONObject with a "tagName" property. If the tag has attributes, then the attributes will be in the JSONObject as properties. If the tag contains children, the object will have a "childNodes" property which will be an array of strings and JsonML JSONObjects. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `string` - The XML source text.
Returns:
  A JSONObject containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONObject

#### toJSONObject

    public static JSONObject toJSONObject(String string,
                                          boolean keepStrings)
                                   throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform. Each XML tag is represented as a JSONObject with a "tagName" property. If the tag has attributes, then the attributes will be in the JSONObject as properties. If the tag contains children, the object will have a "childNodes" property which will be an array of strings and JsonML JSONObjects. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `string` - The XML source text.
  `keepStrings` - If true, then values will not be coerced into boolean or numeric values and will instead be left as strings
Returns:
  A JSONObject containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONObject

#### toJSONObject

    public static JSONObject toJSONObject(String string,
                                          JSONMLParserConfiguration config)
                                   throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform. Each XML tag is represented as a JSONObject with a "tagName" property. If the tag has attributes, then the attributes will be in the JSONObject as properties. If the tag contains children, the object will have a "childNodes" property which will be an array of strings and JsonML JSONObjects. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `string` - The XML source text.
  `config` - The parser configuration: JSONMLParserConfiguration.ORIGINAL is the default behaviour; JSONMLParserConfiguration.KEEP_STRINGS means values will not be coerced into boolean or numeric values and will instead be left as strings
Returns:
  A JSONObject containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONObject

#### toJSONObject

    public static JSONObject toJSONObject(XMLTokener x)
                                   throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform. Each XML tag is represented as a JSONObject with a "tagName" property. If the tag has attributes, then the attributes will be in the JSONObject as properties. If the tag contains children, the object will have a "childNodes" property which will be an array of strings and JsonML JSONObjects. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `x` - An XMLTokener of the XML source text.
Returns:
  A JSONObject containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONObject

#### toJSONObject

    public static JSONObject toJSONObject(XMLTokener x,
                                          boolean keepStrings)
                                   throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform. Each XML tag is represented as a JSONObject with a "tagName" property. If the tag has attributes, then the attributes will be in the JSONObject as properties. If the tag contains children, the object will have a "childNodes" property which will be an array of strings and JsonML JSONObjects. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `x` - An XMLTokener of the XML source text.
  `keepStrings` - If true, then values will not be coerced into boolean or numeric values and will instead be left as strings
Returns:
  A JSONObject containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONObject

#### toJSONObject

    public static JSONObject toJSONObject(XMLTokener x,
                                          JSONMLParserConfiguration config)
                                   throws JSONException

Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform. Each XML tag is represented as a JSONObject with a "tagName" property. If the tag has attributes, then the attributes will be in the JSONObject as properties. If the tag contains children, the object will have a "childNodes" property which will be an array of strings and JsonML JSONObjects. Comments, prologs, DTDs, and

     &lt;[ [ ]]>

are ignored.

Parameters:
  `x` - An XMLTokener of the XML source text.
  `config` - The parser configuration: JSONMLParserConfiguration.ORIGINAL is the default behaviour; JSONMLParserConfiguration.KEEP_STRINGS means values will not be coerced into boolean or numeric values and will instead be left as strings
Returns:
  A JSONObject containing the structured data from the XML string.
Throws:
  `JSONException` - Thrown on error converting to a JSONObject

#### toString

    public static String toString(JSONArray ja)
                           throws JSONException

Reverse the JSONML transformation, making an XML text from a JSONArray.

Parameters:
  `ja` - A JSONArray.
Returns:
  An XML string.
Throws:
  `JSONException` - Thrown on error converting to a string

#### toString

    public static String toString(JSONObject jo)
                           throws JSONException

Reverse the JSONML transformation, making an XML text from a JSONObject. The JSONObject must contain a "tagName" property. If it has children, then it must have a "childNodes" property containing an array of objects. The other properties are attributes with string values.

Parameters:
  `jo` - A JSONObject.
Returns:
  An XML string.
Throws:
  `JSONException` - Thrown on error converting to a string