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

标签 java json groovy

在 groovy 中,我有以下对象。 (类型:[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"
   }
]

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

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

parsedJSON = parser.parseText(test);  
parsedJSON.findAll{ it.id == 'rod_1565173139923' });

这给了我这个

No such property: id for class: java.lang.String

我做错了什么?

谢谢!

最佳答案

只需修复几个语法即可让您的代码正常运行:

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' }

关于java - 无法从 groovy 中的 json 数组中过滤对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57393372/

相关文章:

groovy - 使用collect闭包改进Groovy列表迭代

java - butterknife 库问题

c# - 如何使用包含 "raw"JSON 的字符串成员序列化和反序列化类型,而无需在此过程中转义 JSON

regex - 为什么这个正则表达式不起作用?

java - 扩展单一 ID REST 端点以支持多个 ID

安卓 JSONObject : Search function

Groovy Postbuild 不在 Jenkins 上执行脚本

java - OpenGL 第一人称相机位置问题

java - 如何在 cron 下运行 Java 程序并导入 jar

JAVA Socket编程死循环