无法从JSON响应提取term_no字段值,请求技术协助
问题:Postman提取嵌套JSON字符串中的ticketlist.term_no报错
问题详情
- 报错信息:
The response has all properties | JSONError: Unexpected token 'o' at 1:2 [object Object] - 需求:提取响应中
ticketlist数组内的term_no字段值 - 响应结构特点:
data.content是转义后的JSON字符串(而非直接的JSON对象),内部包含目标ticketlist数组 - 原始测试代码尝试直接访问
responseJson.data.content.ticketlist,触发解析错误
原因分析
responseJson.data.content存储的是JSON格式的字符串(可见字符串内的引号都带有转义符\),无法直接通过对象属性访问的方式获取内部字段,必须先将该字符串解析为JSON对象,才能访问其内部的ticketlist。
修正后的测试代码
验证单个ticket的term_no
pm.test("验证ticketlist第一个元素的term_no值", () => { const responseJson = pm.response.json(); // 解析content字段的JSON字符串为对象 const contentObj = JSON.parse(responseJson.data.content); // 访问第一个ticket的term_no并断言 pm.expect(contentObj.ticketlist[0].term_no).to.eql('2001'); });
验证所有ticket的term_no(可选)
如果需要确保ticketlist中所有项的term_no都符合预期,可以遍历数组:
pm.test("验证所有ticketlist元素的term_no均为2001", () => { const responseJson = pm.response.json(); const contentObj = JSON.parse(responseJson.data.content); contentObj.ticketlist.forEach(ticket => { pm.expect(ticket.term_no).to.eql('2001'); }); });
内容的提问来源于stack exchange,提问作者itsme
相关产品推荐
相关产品推荐

