object Xml

Functions to convert between JSON and XML.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Xml
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  16. def toJson(xml: NodeSeq): JValue

    Converts the given XML to JSON.

    Converts the given XML to JSON.

    The following rules are used in the conversion:

    • an XML leaf element is converted to a JSON string
    • an XML parent element is converted to a JSON object and its children to JSON fields
    • XML elements with the same name at the same level are converted to a JSON array
    • XML attributes are converted to JSON fields

    For example:

    scala> val xml =
        <users>
          <user>
            <id>1</id>
            <name>Harry</name>
          </user>
          <user>
            <id>2</id>
            <name>David</name>
          </user>
        </users>
    
    scala> val json = toJson(xml)
    scala> prettyRender(json)
    
    {
      "users":{
        "user":[{
          "id":"1",
          "name":"Harry"
        },{
          "id":"2",
          "name":"David"
        }]
      }
    }

    Now, the above example has two problems. First, the id is converted to a String while we might want it as an Int. This is easy to fix by mapping JString(s) to JInt(s.toInt). The second problem is more subtle: the conversion function decides to use a JSON array because there's more than one user element in the XML. Therefore a structurally equivalent XML document which happens to have just one user element will generate a JSON document without a JSON array. This is rarely a desired outcome. Both of these problems can be fixed by the following map invocation:

    json mapField {
      case JField("id", JString(s)) => JField("id", JInt(s.toInt))
      case JField("user", x: JObject) => JField("user", JArray(x :: Nil))
      case x => x
    }
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. def toXml(json: JValue): NodeSeq

    Converts the given JSON to XML.

    Converts the given JSON to XML.

    The following rules are used in conversion:

    • JSON primitives are converted to XML leaf elements
    • JSON objects are converted to XML elements
    • JSON arrays are recursively converted to XML elements

    Use the map function to preprocess JSON before conversion to adjust the end result. For instance a common conversion is to encode arrays as comma separated Strings since XML does not have an array type:

    toXml(json map {
      case JField("nums",JArray(ns)) => JField("nums",JString(ns.map(_.values).mkString(",")))
      case x => x
    })
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped