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

Groovy中如何使用动态变量作为JSON属性名?

Groovy动态Map键名实现方案

要把变量值作为Map(对应JSON属性名)的键,Groovy有两种常用写法:

方法一:括号包裹变量的字面量写法

在Map字面量里,用[(变量名)]的格式定义动态键,Groovy会自动解析变量的实际值作为键名。修改后的完整代码如下:

String attr = ff.getAttribute("unique_dim");
def result = report.data.rows.collectMany{
    [headers, it.metrics[0].values].transpose().collect{ h, v ->
        [
            metric_name: h.name,
            metric_value: v,
            report_date: it.dimensions[0],
            (attr): it.dimensions[1]  // 用括号包裹变量,实现动态键名
        ]
    }
}

方法二:先创建Map再动态添加键

如果需要额外逻辑处理,或后续要修改Map结构,可以先初始化固定键值对,再用put()方法添加动态键:

String attr = ff.getAttribute("unique_dim");
def result = report.data.rows.collectMany{
    [headers, it.metrics[0].values].transpose().collect{ h, v ->
        def itemMap = [
            metric_name: h.name,
            metric_value: v,
            report_date: it.dimensions[0]
        ]
        itemMap.put(attr, it.dimensions[1])  // 动态注入键值对
        return itemMap
    }
}

两种方式都能满足需求,第一种简洁直观,适合直接在字面量中定义动态键;第二种灵活性更强,适配复杂逻辑场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:23:01