org.json4s

Xml

object Xml extends AnyRef

Functions to convert between JSON and XML.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. Xml
  2. AnyRef
  3. Any
Visibility
  1. Public
  2. All

Value Members

  1. def != (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  2. def != (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  3. def ## (): Int

    Attributes
    final
    Definition Classes
    AnyRef → Any
  4. def == (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  5. def == (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  6. def asInstanceOf [T0] : T0

    Attributes
    final
    Definition Classes
    Any
  7. def clone (): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  8. def eq (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  9. def equals (arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize (): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  11. def getClass (): java.lang.Class[_]

    Attributes
    final
    Definition Classes
    AnyRef → Any
  12. def hashCode (): Int

    Definition Classes
    AnyRef → Any
  13. def isInstanceOf [T0] : Boolean

    Attributes
    final
    Definition Classes
    Any
  14. def ne (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  15. def notify (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  16. def notifyAll (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  17. def synchronized [T0] (arg0: ⇒ T0): T0

    Attributes
    final
    Definition Classes
    AnyRef
  18. def toJson (xml: NodeSeq): JValue

    Convert given XML to JSON.

    Convert given XML to JSON.

    Following rules are used in conversion.

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

    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> pretty(render(json))
    
    {
      "users":{
        "user":[{
          "id":"1",
          "name":"Harry"
        },{
          "id":"2",
          "name":"David"
        }]
      }
    }
    

    Now, the above example has two problems. First, the id is converted to 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 JSON array because there's more than one user-element in XML. Therefore a structurally equivalent XML document which happens to have just one user-element will generate a JSON document without JSON array. This is rarely a desired outcome. These both problems can be fixed by following map function.

    json map {
      case JField("id", JString(s)) => JField("id", JInt(s.toInt))
      case JField("user", x: JObject) => JField("user", JArray(x :: Nil))
      case x => x
    }
    

  19. def toString (): String

    Definition Classes
    AnyRef → Any
  20. def toXml (json: JValue): NodeSeq

    Convert given JSON to XML.

    Convert given JSON to XML.

    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 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 array type.

    toXml(json map {
      case JField("nums",JArray(ns)) => JField("nums",JString(ns.map(_.values).mkString(",")))
      case x => x
    })
    

  21. def wait (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  22. def wait (arg0: Long, arg1: Int): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  23. def wait (arg0: Long): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from AnyRef

Inherited from Any