Groovy如何从JSON响应中提取指定对象的dueDate字段值
你可以使用Groovy集合内置的find方法筛选符合条件的对象,直接定位到目标条目后提取对应字段即可,具体实现代码如下:
import groovy.json.* def response = context.expand( '${user tasks#Response}' ) def data = new JsonSlurper().parseText(response) // 筛选userTaskId等于12的任务对象,匹配到第一个符合条件的对象后就会返回 def targetTask = data._embedded.userTaskDtoList.find { it.userTaskId == 12 } // 提取dueDate字段,?.是空安全操作符,未匹配到对象时不会抛出空指针异常 def targetDueDate = targetTask?.dueDate
补充说明
- 遍历过程中
it指向当前遍历的任务对象,你可以自定义闭包内的判断逻辑实现其他规则的筛选,比如要匹配userTaskDefinitionId为JJD的对象,只需要将判断条件修改为it.userTaskDefinitionId == "JJD"即可。 - 如果需要匹配所有符合条件的对象,可将
find替换为findAll,返回结果为符合条件的对象列表。 - 你可以根据自己的校验逻辑增加
targetDueDate的非空判断,处理未匹配到目标对象的异常场景。
内容的提问来源于stack exchange,提问作者Cata
相关产品推荐
相关产品推荐

