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

如何在JSON对象列表中使用传入的key变量替代硬编码字段进行对象查找?

动态匹配JSON列表中的键值对解决方案

这个需求其实很容易解决,核心就是把硬编码的属性访问改成动态键名访问就行。在Groovy里,从JSON解析出来的对象本质上是Map类型,我们可以用括号访问法来实现动态匹配,替代原来.的硬编码方式。

你只需要把代码里的variable.name == value改成variable[key] == value,就能用传入的key参数来动态匹配对应的属性了。

修改后的完整代码如下:

void searchKeyValueInList(def jsonList, String key, String value) { 
    if(!jsonList) return 
    // 用动态键名替换硬编码的name/label
    def dashboardVariable = jsonList.find{ variable -> variable[key] == value } 
    if(dashboardVariable){ 
        println "Dashboard variable is: ${dashboardVariable}" 
    } 
}

额外说明:

  • 这种方式适配所有Map类型对象,不管你的JSON键是name、label还是其他任意字符串,只要传入的key参数和目标键一致就能匹配成功
  • 如果JSON对象的键包含特殊字符(比如user-name、display name),括号访问法依然能正常工作,而.的硬编码方式会直接报错,这也是动态访问的一大优势
  • 要是传入的key在JSON对象中不存在,variable[key]会返回null,这时候就匹配不到任何结果,所以调用方法时要确保key是目标JSON对象中存在的键

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:02:29