gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 15:19:49 25 4
gpt4 key购买 nike

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

}

此代码可以正常工作,但带有匿名数组的json除外。
例如:
[
{
"cnt":1,
"name":"American",
"pk":7
},
{
"cnt":2,
"name":"Celebrities",
"pk":3
},
{
"cnt":1,
"name":"Female",
"pk":2
}
]

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

如何避免这个问题?

最佳答案

您正在混合库:
现在,您正在通过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):

import org.json.JSONObject
import org.json.JSONTokener
import org.json.XML

def convertJsonToXml(String json) {
def o = new JSONTokener(json).nextValue()
return XML.toString(o)
}

关于json - Groovy使用匿名数组将json转换为xml失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39390407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com