# Class JSONML

java.lang.Object
org.daypilot.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.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JSONML()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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(XMLTokener x)`
  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(XMLTokener x)`
  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 Details

  - ### JSONML

    public JSONML()

- ## Method Details

  - ### 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 `<[ [ ]]>` are ignored.
    Parameters:
      `string` - The source string.
    Returns:
      A JSONArray containing the structured data from the XML string.
    Throws:
      `JSONException`

  - ### 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 `<[ [ ]]>` are ignored.
    Parameters:
      `x` - An XMLTokener.
    Returns:
      A JSONArray containing the structured data from the XML string.
    Throws:
      `JSONException`

  - ### 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 `<[ [ ]]>` are ignored.
    Parameters:
      `x` - An XMLTokener of the XML source text.
    Returns:
      A JSONObject containing the structured data from the XML string.
    Throws:
      `JSONException`

  - ### 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 `<[ [ ]]>` are ignored.
    Parameters:
      `string` - The XML source text.
    Returns:
      A JSONObject containing the structured data from the XML string.
    Throws:
      `JSONException`

  - ### 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`

  - ### 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`