如何使用每个方法从groovy中的JSON数组获取ID?

Hen*_*Dev 1 arrays groovy json

我正在尝试从 Groovy 中的 JSON 数组获取 ID 列表。我知道如何使用常规 FOR 循环获取 ID,但我想知道如何使用 every方法执行相同操作。我不知道如何实施。有人有什么主意吗?先感谢您。这是我的代码,使用常规 for 循环可以正常工作。不过我想用每种方法来做到这一点。

import groovy.json.*

def restresponse = '[{"id":5, "name":"Bob"},{"id":8, "name":"John"},{"id":12, "name":"Jim"},{"id":20, "name":"Sally"}]' 
def json = new JsonSlurper().parseText(restresponse)
def myListOfIDs = []

for (int i = 0; i < json.size; i++) {
 myListOfIDs.add(json[i].id) // getting all ID's for each SourceSystem
}
log.info(myListOfIDs) // This prints out all this IDs
Run Code Online (Sandbox Code Playgroud)

Unh*_*eep 5

执行此“转换”的最短方法是使用 Groovy 的 Collectioncollect方法,例如:

def myListOfIDs = json.collect { ele -> ele.id }
Run Code Online (Sandbox Code Playgroud)

编辑:正如@dmahapatro 指出的,还有更短的可能性:

def myListOfIDs = json*.id
Run Code Online (Sandbox Code Playgroud)

  • 或者只是 `json*.id` @HenryDev (3认同)