gpt4 book ai didi

javascript - 不能使用 JSON.parse 返回的数据

转载 作者:行者123 更新时间:2023-11-30 17:34:56 24 4
gpt4 key购买 nike

我正在尝试测试一个 api (sails.js),但我无法使用 JSON.parse 返回的数据

我有这个测试:

describe('when requesting resource /coin', function () {

it ('should request "/Coin" on server and return it', function (done) {
supertest(sails.express.app)
.get('/Coin')
.expect('Content-Type', /json/)
.expect(200, done)
.end(function(err, res) {
var result = JSON.parse(JSON.stringify(res.text));
assert.equal(result.cash, 1000);
done();
})
})
})

在这里你可以看到结果是怎样的:

Uncaught TypeError: Object [

{

"userId": "macario",

"cash": 1000,

"createdAt": "2014-03-04T20:17:57.483Z",

"updatedAt": "2014-03-07T02:47:51.098Z",

"id": 15

}

][

{

"userId": "macario",

"cash": 1000,

"createdAt": "2014-03-04T20:17:57.483Z",

"updatedAt": "2014-03-07T02:47:51.098Z",

"id": 15

} ]

错误:

Uncaught AssertionError: "undefined" == 1000

我想使用这些信息,但我无法访问它们。

最佳答案

您在 res.text 中的响应可能是一个字符串。

当您stringify 一个字符串时,引号会被转义,导致这种情况;

""[{\"userId\":\"macario\",\"cash\":1000,\"createdAt\":\"2014-03-
04T20:17:57.483Z\",\"updatedAt\":\"2014-03-07T02:47:51.098Z\",\"id\":15}]""

因此,当您对其调用 JSON.parse 时,它只是将其转回字符串,而不是您想要的对象。

只需更改这一行;

var result = JSON.parse(JSON.stringify(res.text));

对此;

var result = JSON.parse(res.text);

如果 parse 失败,则 res.text 中的 JSON 格式不正确,这是您的主要问题。

关于javascript - 不能使用 JSON.parse 返回的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22243948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com