Groovy操作JSON:删除外层节点后追加新根节点实现格式转换
Groovy 实现代码
你可以直接用 Groovy 内置的 JSON 处理工具完成需求,无需引入第三方依赖,示例代码如下:
import groovy.json.JsonSlurper import groovy.json.JsonBuilder // 原始JSON字符串,也可以替换为从文件、接口读取的原始内容 def rawJsonStr = ''' { "Association_1": { "Price": 71.4, "Branch": "600001", "Item": "BB101", "UOM": "CS" }, "Association_2": { "Price": 3.88, "Branch": "600001", "Item": "BB101", "UOM": "LB" }, "Association_3": { "Price": 17.85, "Branch": "600001", "Item": "BB101", "UOM": "PC" } } ''' // 解析原始JSON为Map对象 def rawJson = new JsonSlurper().parseText(rawJsonStr) // 过滤匹配键并提取值组装为目标结构 def targetJson = new JsonBuilder([ Pricing: rawJson.entrySet() .findAll { it.key.startsWith('Association_') } .collect { it.value } ]) // 输出格式化后的目标JSON println targetJson.toPrettyString()
补充说明
- 代码中的
findAll过滤逻辑可以避免原始JSON存在其他无关键时被误处理,适配性更强 - 如果需要压缩格式的JSON用于接口传输,把
toPrettyString()替换为toString()即可
内容的提问来源于stack exchange,提问作者CMiller
相关产品推荐
相关产品推荐

