无法从 groovy 中的 json 数组中过滤对象

Jay*_*dha 1 java groovy json

在常规中,我有以下对象。(类型:[Ljava.lang.Object)

 test = [  
   {  
      "id":"rod_1565173117796",
      "userName":"rod",
      "displayName":"Rod",
      "date":1565173117796,
      "comment":"ok"
   },
   {  
      "id":"rod_1565173139923",
      "userName":"rod",
      "displayName":"Rod",
      "date":1565173139923,
      "comment":"fine"
   }
]
Run Code Online (Sandbox Code Playgroud)

我想根据id修改/删除这个JSON数组列表。

我尝试下面的方法从列表中过滤所需的 json 对象。

parsedJSON = parser.parseText(test);  
parsedJSON.findAll{ it.id == 'rod_1565173139923' });
Run Code Online (Sandbox Code Playgroud)

这给了我那个

没有这样的属性:类的 id:java.lang.String

我做错了什么?

谢谢!

dag*_*ett 7

只需修复几个语法,您的代码就可以工作:

def test = '''[  
   {  
      "id":"rod_1565173117796",
      "userName":"rod",
      "displayName":"Rod",
      "date":1565173117796,
      "comment":"ok"
   },
   {  
      "id":"rod_1565173139923",
      "userName":"rod",
      "displayName":"Rod",
      "date":1565173139923,
      "comment":"fine"
   }
]'''

def parser = new groovy.json.JsonSlurper()
def parsedJSON = parser.parseText(test);  
def filtered = parsedJSON.findAll{ it.id == 'rod_1565173139923' }
Run Code Online (Sandbox Code Playgroud)