Mah*_*man 6 iteration syntax groovy parsing json
我是Groovy的新手,我正在使用以下代码解析JSON文件:
void getItemData()
{
def jsonSlurper = new JsonSlurper()
def reader = new BufferedReader(new InputStreamReader(new FileInputStream("data.json"),"UTF-8"));
data = jsonSlurper.parse(reader);
data.TESTS.each{println it.MEMBER_ID}
}
Run Code Online (Sandbox Code Playgroud)
我正在正确打印MEMBER_ID的值.
我想参数化上面的函数,如:
void getItemData(String item)
{
...
}
Run Code Online (Sandbox Code Playgroud)
这样我就可以用我想要的项目来调用这个函数.例如:我想要MEMBER_ADDRESS.我想调用这个函数:
getItemData("MEMBER_ADDRESS")
Run Code Online (Sandbox Code Playgroud)
现在我该如何改变声明:
data.TESTS.each{println it.MEMBER_ID}
Run Code Online (Sandbox Code Playgroud)
我试过了
it.${item}
Run Code Online (Sandbox Code Playgroud)
和其他一些不起作用的方式.
请教我如何做到这一点.
我的JSON文件如下所示:
{
"TESTS":
[
{
"MEMBER_ID": "my name",
"MEMBER_ADDRESS": "foobarbaz",
}
]
}
Run Code Online (Sandbox Code Playgroud)
void getItemData(String item) {
def jsonSlurper = new JsonSlurper()
def data = jsonSlurper.parseText(new File("data.json").text)
println data.TESTS.each{ println it["$item"] }
}
getItemData("MEMBER_ADDRESS")
Run Code Online (Sandbox Code Playgroud)
您需要${item}像这样添加引号:
import groovy.json.*
void getItemData(String item) {
def jsonSlurper = new JsonSlurper()
def reader = new BufferedReader(new InputStreamReader(new FileInputStream("/tmp/json"),"UTF-8"))
data = jsonSlurper.parse(reader)
data.TESTS.each { println it."$item" }
}
getItemData("MEMBER_ADDRESS")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11493 次 |
| 最近记录: |