使用匿名数组将json转换为xml的Groovy失败

时间:2016-09-08 12:04:12

标签: json xml grails

我有以下代码将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
  } 
]

我得到了这个结果: { “空”:假}

我该如何避免这个问题?

1 个答案:

答案 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}}
相关问题