You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy实现XML转指定格式JSON数组的代码问题排查

Groovy XML转指定格式JSON 解决方案

原有代码问题

  • 硬编码添加了不需要的name字段,与预期输出结构不符
  • 未区分当前XML中不同节点的作用:顶层Code、Message为单值字段,ExtendedStatus为重复数组元素,原有逻辑直接把所有子节点统一归到extendedMessages,逻辑错误
  • 字段名未做映射,XML节点名首字母大写,预期JSON字段名首字母小写
  • 文本节点处理逻辑错误,无法正确提取Code节点的内容到对应字段

调整后可运行代码

def toJsonBuilder(String xml) {
    def root = new XmlParser().parseText(xml)
    // 直接按给定XML结构组装目标对象
    def result = [
        code: root.Code.text(),
        message: root.Message.text(),
        extendedMessages: root.ExtendedStatus.collect { statusNode ->
            [
                code: statusNode.Code.text(),
                message: statusNode.Message.text()
            ]
        }
    ]
    new groovy.json.JsonBuilder(result)
}

// 调用示例,xml1替换为你的XML字符串
println toJsonBuilder(xml1).toPrettyString()

输出验证

运行代码后得到的结果与需求完全一致:

{
    "code": "BUSINESS_EXCEPTION",
    "message": "Invalid postcode - Invalid state",
    "extendedMessages": [
        {
            "code": "48",
            "message": "Invalid Postcode"
        },
        {
            "code": "12",
            "message": "Invalid State"
        }
    ]
}

内容的提问来源于stack exchange,提问作者ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:54:06