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

Groovy使用JsonSlurper解析JSON时动态变量取值问题求助

问题修正方案

你的问题出在动态属性访问的语法错误上:${jsonFileData}.${Member}.PROCESSOR 会先把 jsonFileData 对象转成字符串,再拼接成类似 [JsonSlurperResult].MEMXYZ.PROCESSOR 的无效表达式,自然无法正确取值。

Groovy 支持两种动态访问对象属性的方式,任选其一即可:

方法1:使用方括号索引访问

def Member = "MEMXYZ"
println "Print2 ***** Parsing PROCESSOR  = ${jsonFileData[Member].PROCESSOR}"

方法2:使用字符串插值的属性访问语法

def Member = "MEMXYZ"
println "Print2 ***** Parsing PROCESSOR  = ${jsonFileData."${Member}".PROCESSOR}"

完整验证示例

结合你的代码场景,完整测试代码如下:

import groovy.json.JsonSlurper

def jsonFile = new File("your-json-file-path.json")
def slurper = new JsonSlurper()
def jsonFileData = slurper.parse(jsonFile)

// 静态访问(原Print1,正常工作)
println "Print1 ***** Parsing PROCESSOR  = ${jsonFileData.MEMXYZ.PROCESSOR}"

// 动态变量访问(修正后的Print2)
def Member = "MEMXYZ"
println "Print2 ***** Parsing PROCESSOR  = ${jsonFileData[Member].PROCESSOR}"

执行后,Print2会和Print1输出相同的结果:Print2 ***** Parsing PROCESSOR = PROCESSOR XYZ

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:39:52