我正在尝试通过以下方式将JSON转换为Grails中的XML:
import net.sf.json.JSONObject
import net.sf.json.xml.XMLSerializer
...
String convertToXmlString(jsonString) {
JSONObject json = JSONObject.fromObject(jsonString)
String xml = new XMLSerializer().write( json )
return xml
}
但是当我尝试运行代码时,我得到了异常:
Caused by: java.lang.ClassNotFoundException: nu.xom.Serializer
at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
我之前没有碰到这样的事情。我不是要导入所有必要的课程吗?我已将json-lib jar导入我的/lib
文件夹,然后运行grails compile --refresh-dependencies
。我还需要另外一步吗?
我对其他转换JSON /地图的方式持开放态度 - > XML /字符串和返回,但这个问题似乎应该很容易修复。
答案 0 :(得分:1)
您可以使用grails.converters来完成此任务:
import grails.converters.JSON
import grails.converters.XML
def o = JSON.parse("{ foo: 'bar' }") // creates a JSONObject
def x = o as XML // creates an XML
println x
def s = x as String // create the String representing the XML
println s
结果将如下:
<?xml version="1.0" encoding="UTF-8"?><map><entry key="foo">bar</entry></map>
<?xml version="1.0" encoding="UTF-8"?><map><entry key="foo">bar</entry></map>