我有几个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?
提前致谢!
答案 0 :(得分:1)
我不知道Scala中实现了什么,但您可以使用Java库将xml转换为map(例如JAXB),然后将map转换为json(例如jackson)
这是java中的一些示例:xml-to-json JSON-java