Scala中的通用XML到JSON转换器

时间:2015-03-16 16:40:10

标签: xml json scala

我有几个xml配置文件,如:

<ConfigParams name="ABC">
    <params>
        <param name="campaignId" type="SINGLE_VALUED" validation="required" label="Campaign ID" />
    </params>
</ConfigParams>

到目前为止,我通过这样的方式手动将每个XML转换为它的一些任意配置xml CM.xml的JSON对应物:

(cmXML \\ "params").foreach(x => {
  for (filter <- x.child.filterNot(y => (y \\ "@name").text.equalsIgnoreCase(StringUtils.EMPTY))){
    val label:String =       (filter \\ "@label").text
    val ftype:String =   (filter \\ "@type").text
    val name:String =        (filter \\ "@name").text
    val render:String  =      (filter \\ "@render").text
    val validation:Array[String] =   Option((filter \\ "@validation").text).getOrElse("").split(',')
    val group:String =  (filter \\ "@group").text
    val enumVals =
      if(! (filter \\ "values").isEmpty)
        for (filtervalue <-  ( (filter \\ "values").iterator.next()  \\ "name") ) yield  (filtervalue ).text
      else
        null
    cmParams += Map("label" -> label, "type" -> ftype , "name" ->   name , "render" -> render , "validation" -> validation, "group" -> group,  "values" ->  enumVals )
  }
})

但是现在我正在寻找更通用的东西。能否请您指向一个scala库(或java),它遵循标准的XML格式后可以轻松地将XML转换为JSON?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我不知道Scala中实现了什么,但您可以使用Java库将xml转换为map(例如JAXB),然后将map转换为json(例如jackson)

这是java中的一些示例:xml-to-json JSON-java