我有以下代码将json转换为xml:
import grails.converters.JSON
import grails.transaction.Transactional
import org.json.JSONObject
import org.json.XML
@Transactional
class JsonService {
def convertJsonToXml(String json) {
JSONObject o = JSON.parse(json)
return XML.toString(o)
}
}
除了带有匿名数组的jsons之外,此代码工作正常。 例如:
[
{
"cnt":1,
"name":"American",
"pk":7
},
{
"cnt":2,
"name":"Celebrities",
"pk":3
},
{
"cnt":1,
"name":"Female",
"pk":2
}
]
我得到了这个结果: { “空”:假}
我该如何避免这个问题?
答案 0 :(得分:1)
你正在混合图书馆: 现在你正在通过grails.converters.JSON解析json字符串,它将生成org.codehaus.groovy.grails.web.json.JSONElement对象。
然后你试图将这个结果放到org.json.JSONObject中,让它通过org.json.XML转换为XML
只需通过org.json.JSONTokener解析String,并使变量“o”动态化(以保存JSONObject或JSONArray):
{{1}}