首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在json请求中添加额外数据

如何在json请求中添加额外数据
EN

Stack Overflow用户
提问于 2017-02-15 13:59:02
回答 1查看 397关注 0票数 1

在我的SOAP中,我有两个步骤,一个groovy脚本步骤和一个针对POST crud方法的rest请求步骤。

在groovy脚本中,我创建了一个名为“成年人”的随机测试用例属性。这个值是介于2-5之间的随机值.

代码语言:javascript
复制
testRunner.testCase.setPropertyValue('adults', String.valueOf((int)Math.random()*5)+2);

以下是我对这一职位的休息请求:

代码语言:javascript
复制
{
  "xxx": "xxx",
  "ratePlanCode": "xxx"
  "roomOccupancies": [
    {
      "passengersInformation": [
        {
          "firstName": "Test",
          "lastName": "Tester",
          "isLeadPassenger": true,
          "age": 30
        },
      ]
    }
  ],
  "xxx": "xxx"
}

现在这个要求是固定的,一个成人乘客,但问题是,如果我有多个乘客,我实际上需要多个乘客在"passengersInformation“。因此,几乎每增加一名成年人,我都要补充:

代码语言:javascript
复制
{
      "firstName": "Test",
      "lastName": "Tester",
      "isLeadPassenger": false,
      "age": 30
    },

所以我想的是乘客的名字,因为我们不允许重复名字,我们只是在名字的末尾加上一个数字。另外两个字段我们可以保持不变。

因此,我的问题是,如何根据从groovy脚本中随机选择的成人数量在请求中添加额外的乘客详细信息?

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-15 15:17:43

这里有一种复制乘客的方法:注意,我必须修复JSON字符串中的几个逗号(额外的和缺失的)。

代码语言:javascript
复制
import groovy.json.*
def jsonData = '''{
  "hotelArrivalDate": "2017-06-01T18:15:00",
  "ratePlanCode": "xxx=",
  "roomOccupancies": [
    {
      "passengersInformation": [
        {
          "firstName": "Test",
          "lastName": "Tester",
          "isLeadPassenger": true,
          "age": 30
        }
      ]
    }
  ],
  "holidaysBookingReference": "TestRef"
}'''
def n=1
def data = (new JsonSlurper()).parseText(jsonData)
def newPerson = data.roomOccupancies[0].
                     passengersInformation[0].
                     collectEntries {k,v -> 
                         ['firstName','lastName'].contains(k) ? [k,v+n] : [k,v]
                     }
data.roomOccupancies[0].passengersInformation << newPerson
jsonData = (new JsonBuilder(data)).toPrettyString()

结果

代码语言:javascript
复制
{
    "hotelArrivalDate": "2017-06-01T18:15:00",
    "ratePlanCode": "xxx=",
    "roomOccupancies": [
        {
            "passengersInformation": [
                {
                    "firstName": "Test",
                    "lastName": "Tester",
                    "isLeadPassenger": true,
                    "age": 30
                },
                {
                    "firstName": "Test1",
                    "lastName": "Tester1",
                    "isLeadPassenger": true,
                    "age": 30
                }
            ]
        }
    ],
    "holidaysBookingReference": "TestRef"
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42251416

复制
相关文章

相似问题

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