Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml Grails NoClassDefFoundError:nu/xom/Serializer_Xml_Json_Grails - Fatal编程技术网

Xml Grails NoClassDefFoundError:nu/xom/Serializer

Xml Grails NoClassDefFoundError:nu/xom/Serializer,xml,json,grails,Xml,Json,Grails,我试图通过以下方式在Grails中将JSON转换为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 )

我试图通过以下方式在Grails中将JSON转换为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)
我以前从未遇到过这样的事情。我不是导入了所有必需的类吗?我已将jar导入我的
/lib
文件夹,并运行
grails compile--refresh dependencies
。我还需要再跑一步吗


我对转换JSON/maps->XML/strings的其他方法持开放态度,但这个问题似乎应该很容易解决。

您可以使用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>
条
酒吧

您可以使用grails.converter来完成以下任务:

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>
条
酒吧

问题不在于json-lib.jar,而在于缺少的问题不是json-lib.jar,而是缺少的+1,我应该在问题中提到这一点,但是有没有办法使用键作为节点名?ie吧?看看这些链接,可能会对你有所帮助:我希望能有一个简单的方法调用,类似于xstream或json库。谢谢你+1,我应该在问题中提到这一点,但是有没有办法使用键作为节点名?ie吧?看看这些链接,可能会对你有所帮助:我希望能有一个简单的方法调用,类似于xstream或json库。谢谢你!