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

如何在Groovy中通过JsonBuilder的闭包方式生成含数组的指定JSON结构

如何用Groovy JsonBuilder生成包含数组的目标JSON结构?

嘿,我懂你现在的困扰——你想要root对应一个包含单个对象的数组,但当前的闭包写法让它变成了单个对象。其实只要给JsonBuilder明确的数组标识就行,有两种简单的修改方式:

方式一:直接传入数组字面量

这种写法更直观,直接把要放在数组里的对象用[]包裹:

def testKey = "testkey"
def testValue = "testvalue"

def json = new JsonBuilder().root([
    [key: testKey, value: testValue]
]).toPrettyString()

println json

方式二:在闭包里用数组语法

如果你更习惯闭包的写法,只需要把原来的键值对用[]包裹起来,告诉JsonBuilder这是一个数组元素:

def testKey = "testkey"
def testValue = "testvalue"

def json = new JsonBuilder().root {
    [
        key(testKey),
        value(testValue)
    ]
}.toPrettyString()

println json

两种方式都会生成你想要的目标JSON:

{ "root": [ { "key": "testkey", "value": "testvalue" } ] }

原理其实很简单:原来的闭包写法里,key(testKey)这种语法会被JsonBuilder解析为对象的键值对;而当你用[]把这些内容包裹起来时,JsonBuilder就会识别出这是一个数组结构,从而把root的值处理成数组类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:18:28