1

我需要使用 frisby.js 自动化一些 API 测试,并且我一直在访问嵌套在 JSON 响应正文中的一些数据。

下面是我的代码

var frisby = require('c:/frisby');

frisby.create('Request available Voyages')
    .post('someURL', {
        departureVoyage: {
            from: "500",
            to: "500",
            date: '2017-01-07'}})
    .inspectJSON()
    .afterJSON(function (voyage) {
       console.log(voyage.departureVoyage.voyages);}

下面是 inspectJSON() 函数的输出

{ type: 'voyageResponseWsDTO',
  departureVoyage:
   { date: '2017-01-07',
     voyages:
      [ { endTime: '22:30',
          quotas:
           [ { id: '8796095719239',
               limit: 66,
               name: 'PROMOTION',
               price: '34',
               priceCurrency: 'USD' },
             { id: '8796095620935',
               limit: 271,
               name: 'ECONOMY',
               price: '51',
               priceCurrency: 'USD' },
             { id: '8796095489863',
               limit: 19,
               name: 'BUSINESS',
               price: '72',
               priceCurrency: 'USD' },
             { id: '8796234721095',
               limit: 0,
               name: 'CAR PROMOTION',
               price: '84',
               priceCurrency: 'USD' },
             { id: '8796095752007',
               limit: 2,
               name: 'VIP',
               price: '800',
               priceCurrency: 'USD' } ],
          time: '20:00',
          vessel:
           { carriesVehicles: true,
             TypeCode: 'FE',
             TypeName: 'Ferry' } } ] } }

下面是 console.log(voyage.departureVoyage.voyages) 的输出;

[ { endTime: '22:30',
    quotas: [ [Object], [Object], [Object], [Object], [Object] ],
    time: '20:00',
    vessel:
     { carriesVehicles: true,
       TypeCode: 'FE',
       TypeName: 'Ferry' } } ]

我的问题是,当我尝试使用console.log(voyage.departureVoyage.voyages.quotas);“我收到undefined”消息访问“配额”的内容时。您知道如何获取此“配额”的数据吗?因为我需要达到这个“配额”的属性,比如其中一个的 id。

谢谢

4

1 回答 1

4

voyage.departureVoyage.voyages是一个数组,配额在该数组的第一项中,

所以请参考下面的quotas内容,

voyage.departureVoyage.voyages[0].quotas
于 2017-01-05T18:32:51.463 回答