object Xml
Functions to convert between JSON and XML.
- Alphabetic
- By Inheritance
- Xml
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
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 }
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
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 })
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )