首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用groovy在json响应中断言密钥名

使用groovy在json响应中断言密钥名
EN

Stack Overflow用户
提问于 2020-11-26 14:37:38
回答 1查看 74关注 0票数 0

我想在json响应中断言一个键。

响应

代码语言:javascript
复制
{
  "availableRooms": [
    {
      "roomId": 2,
      "exchangeEmailId": null,
      "roomName": "Room 1",
      "floor": 0,
      "groupID": 3,
      "defaultCapacity": 8,
      "maxCapacity": 8,
      "attributes": [
        {
          "attributeID": 170,
          "displayName": "Video Conference Unit",
          "abbreviation": "VCU"
        }
      ],
      "externalRoomEmail": "vinay.jaiswal@condecosoftware.com"
    }
  ],
  "availableRoomsForAllDates": {},
  "callResponse": {
    "message": null,
    "customResponseCode": null
  }
}

Groovy

代码语言:javascript
复制
import groovy.json.JsonSlurper
def ResponseMessage = messageExchange.response.responseContent
def jsonSlurper = new JsonSlurper().parseText(ResponseMessage)
if( jsonSlurper.containsKey( 'externalRoomEmail' ) ) 
{
    log.info 'a'
}
else
{
    log.info 'b'
}

输出

代码语言:javascript
复制
Tue Nov 24 20:24:35 IST 2020:INFO:b

有没有内置的方法?

如果我尝试jsonSlurper.availableRooms.externalRoomEmail,那么它会给我null,但是测试用例是通过的。

如果找不到钥匙,我希望它能打破测试箱。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-27 10:55:56

<编辑-重新阅读你的问题,回答调整后的accordingly>

首先,我将调用已解析的json json而不是jsonSlurper,因为slurper是用于解析json的groovy类,命名数据为"slurper“在概念上是很混乱的。

所以您的问题是json.availableRooms返回一个列表。换句话说,您必须使用以下内容:

代码语言:javascript
复制
if(json.availableRooms.first().externalRoomEmail) { 
  ...
} else {
  ...
}

以检查第一个房间是否定义了externalRoomEmail

这取决于你想做什么。假设您想要查看是否有任何可用的房间定义了externalRoomEmail,那么您将执行以下操作:

代码语言:javascript
复制
def roomsWithEmails = json.availableRooms.findAll { it.externalRoomEmail }
if (roomsWithEmails) {
  roomsWithEmails.each { room ->
    println "room ${room.roomName} has external email ${room.externalRoomEmail}"
  }
} else { // no rooms with externalRoomEmail
  // do something else
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65024129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档