我正在编写一个 Groovy 脚本来解析以下 json 字符串。我是 Groovy 和 Java 的新手,所以如果我遗漏了一些明显的东西,那么我会提前感谢您的耐心等待。
[
{
"forms": [
{
"form1": {
"title": "Form 1 Title",
"data": {}
}
},
{
"form2": {
"title": "Form 2 Title",
"data": {}
}
},
{
"form2": {
"title": "Form 2 Title",
"data": {
"gridData": {
"id": 1,
"fullGridId": "1",
"columns": {
"col1": "Cust Name",
"col2": "Cust Number",
"col3": "Cust Email"
},
"rowset": [
{
"col1": "Jane Eyre",
"col2": 11111,
"col3": "jane.eyre@gmail.com"
},
{
"col1": "Jack Russell",
"col2": 22222,
"col3": "jack.russell@mail.com"
},
{
"col1": "Abraham Lincoln",
"col2": 33333,
"col3": "POTUS16@wh.gov"
},
{
"col1": "Muhammad Ali",
"col2": 44444,
"col3": "theGreatest@gmail.com"
}
],
"summary": {
"records": 4
}
}
}
}
},
{
"form3": {
"title": "Form 3 Title",
"data": {}
}
}
]
}
]
我需要阅读“form2”(“客户名称”、“客户编号”和“客户电子邮件”)中的所有客户信息。我认为我遇到的问题是父元素“form2”在这个json中出现了两次。第一次出现没有数据,但我需要的数据在第二次出现。这是我阅读上面 json 的代码的摘录。变量“formData”是一个包含上述 json 字符串的字符串。
def jsonData = new JsonSlurper().parseText(formData);
def form2Rowset = jsonData.forms.form2.data.gridData.rowset;
for(i=0,i<rowset.size(),i++)
{
rowset[i].get("col1") ....do something
rowset[i].get("col2") ....do something
rowset[i].get("col3") ....do something
}
return;
我认为问题在于“form2”在 json 字符串中出现了两次,但我不确定如何处理。我正在寻找一种不需要下载/导入任何额外包的解决方案(如果可能的话?) - 我已经有了 JsonSlurper。如果您有想法,请描述具体代码,因为我是新手,没有具体代码可能不会跟踪概念。我不会有任何问题根据我的情况定制您的代码建议,但具体的代码将是最有帮助的......并且感激不尽!