1

私は次の方法で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/文字列を変換したり、元に戻したりする他の方法もありますが、この問題は簡単に修正できるはずです。

4

1 に答える 1

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>
于 2012-11-07T22:38:30.630 に答える