如何在Groovy中使用jsonSlurperClassic将XML转换为JSON
报错原因
unable to resolve class JSONObject 报错是因为你没有导入对应类的依赖:JSONObject和你调用的XML.toJSONObject方法都属于org.json第三方工具包,Groovy默认运行环境没有内置该依赖,也没有自动导入相关类。
另外你当前代码没有实现用JsonSlurperClassic处理转换结果的需求。
修复方案
- 用
@Grab注解引入org.json依赖,补充对应类的导入声明 - 补充
JsonSlurperClassic解析逻辑即可
完整运行代码
// 拉取org.json依赖 @Grab('org.json:json:20240303') // 导入所需类 import org.json.JSONObject import org.json.XML import groovy.json.JsonSlurperClassic def xml = ''' <path> <testdata> <item> <resourceURI>https://localhost/version/</resourceURI> <relativePath>/test/folder/version/</relativePath> <text>version</text> <leaf>false</leaf> <lastModifiedtest>2021-07-03</lastModifiedtest> <sizeOnDisk>-1</sizeOnDisk> </item> </testdata> </path> ''' // XML转JSON对象 JSONObject jsonObj = XML.toJSONObject(xml) // 格式化打印JSON字符串 println jsonObj.toString(4) // 按需求用JsonSlurperClassic解析JSON def slurper = new JsonSlurperClassic() def parsedData = slurper.parseText(jsonObj.toString()) // 测试访问节点 println "提取到的resourceURI:${parsedData.path.testdata.item.resourceURI}"
内容的提问来源于stack exchange,提问作者devopsinka
相关产品推荐
相关产品推荐

