You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman测试json-server接口时无法读取响应JSON值问题求助

问题原因

你调用http://localhost:3000/users接口时,json-server会直接返回db.json中users字段对应的数组作为响应根节点,而非包裹了users字段的对象。因此你代码中的jsonData.users是undefined,读取undefined[0]就触发了该报错。

解决方案

方案1:直接按索引取值(适合确定数组顺序固定的场景)

直接修改测试代码如下:

pm.test("校验id为1的用户firstName", function () {
    var jsonData = pm.response.json();
    // 响应本身就是用户数组,无需再访问users属性
    pm.expect(jsonData[0].firstName).to.eql('UserOne');
});

方案2:按id筛选取值(更稳妥,不受数组顺序变化影响)

如果后续用户数组顺序可能调整,建议通过id匹配目标用户:

pm.test("校验id为1的用户firstName", function () {
    var jsonData = pm.response.json();
    const targetUser = jsonData.find(item => item.id === 1);
    pm.expect(targetUser.firstName).to.eql('UserOne');
});

补充说明

json-server会将db.json的顶层键作为独立接口路由,访问对应路由时直接返回该键对应的值,不会保留外层结构。如果你需要获取包含users和subjects的完整结构,可以请求根地址http://localhost:3000,此时你原本的jsonData.users[0].firstName写法可正常运行。

内容的提问来源于stack exchange,提问作者sarthok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:09:01