Groovy使用JsonBuilder如何将多个ArrayList合并输出为单个JSON
问题根因
你当前的写法每次调用json 参数的方式会直接覆盖JsonBuilder的根节点内容,所以两次调用分别生成了只含set1和只含set2的两个独立JSON对象。
方案1:一次性构建所有属性
如果两个集合都是提前准备好的,直接在一次JsonBuilder调用中传入所有键值对即可:
def a = ['R1','R2'] def b = ['R3','R4'] def json = new groovy.json.JsonBuilder() // 一次性传入两个集合对应的键值对 json set1: a, set2: b println groovy.json.JsonOutput.prettyPrint(json.toString())
方案2:分步骤追加属性
如果需要按逻辑分批次添加属性,可以操作JsonBuilder的content属性(本质是Map)手动追加键值对:
def a = ['R1','R2'] def b = ['R3','R4'] def json = new groovy.json.JsonBuilder() // 先添加第一个集合 json set1: a // 追加第二个集合到根节点 json.content.put('set2', b) println groovy.json.JsonOutput.prettyPrint(json.toString())
两种方案的输出都和你期望的格式完全一致。
内容的提问来源于stack exchange,提问作者Prabu
相关产品推荐
相关产品推荐

