如何在 javascript 中获取嵌套 JSON 响应主体的内容?
How to reach contents of a nested JSON response body in javascript?
我需要使用 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);
”访问 "quotas" 的内容时,我收到“undefined
”消息。
您知道如何获取此 "quotas" 的数据吗?因为我需要达到这个 "quotas" 的属性,比如其中一个的 id。
谢谢
voyage.departureVoyage.voyages
是一个数组,配额在该数组的第一项中,
所以像下面这样引用它里面的 quotas
,
voyage.departureVoyage.voyages[0].quotas
我需要使用 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);
”访问 "quotas" 的内容时,我收到“undefined
”消息。
您知道如何获取此 "quotas" 的数据吗?因为我需要达到这个 "quotas" 的属性,比如其中一个的 id。
谢谢
voyage.departureVoyage.voyages
是一个数组,配额在该数组的第一项中,
所以像下面这样引用它里面的 quotas
,
voyage.departureVoyage.voyages[0].quotas