gpt4 book ai didi

javascript - 无法将 JSON 字符串解析为对象

转载 作者:行者123 更新时间:2023-12-03 10:28:27 24 4
gpt4 key购买 nike

所以我尝试从网络服务器检索数据(URL: https://api.uwaterloo.ca/v2/codes/subjects.json?key=6eb0182cf11ca581364ccceee87435f4 )。我使用 JSON 验证器确保其有效的 JSON 数据,确实如此。

我想做的是获取数据数组中主题键的值。但是,当我第一次尝试将响应解析为 JSON 对象时,它不允许我这样做。

这是代码片段

    var req = https.request('https://api.uwaterloo.ca/v2/codes/subjects.json?key=6eb0182cf11ca581364ccceee87435f4', function(res) {
//res.setEncoding('utf8');
res.on('data', function(d) {

//console.log(Object.prototype.toString.call(d));
//jsonString = JSON.stringify(d);
//console.log(jsonString);

fs.writeFile("./test.txt", d, function(err) {
if(err) {
return console.log(err);
}

console.log("The file was saved!");
});

jsonObject = JSON.parse(d);

// console.log(typeof(jsonObject.count));

// for (var key in jsonObject)
// {
// if(jsonObject.hasOwnProperty(key))
// {
// console.log(key + "=" + jsonObject[key]);
// }
// }

});

});

req.end();

req.on('error', function(e) {
console.error(e);
});

我收到以下错误

^
SyntaxError: Unexpected end of input
at Object.parse (native)
at IncomingMessage.<anonymous> (C:\Users\Chintu\Desktop\Chaitanya\Study\Term
4B\MSCI 444\Project\Full Calendar\Trial\helloworld.js:79:20)
at IncomingMessage.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
at IncomingMessage.Readable.push (_stream_readable.js:126:10)
at HTTPParser.parserOnBody (_http_common.js:132:22)
at TLSSocket.socketOnData (_http_client.js:310:20)
at TLSSocket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
at TLSSocket.Readable.push (_stream_readable.js:126:10)

感谢任何帮助。

谢谢!

最佳答案

在解析之前您没有缓冲整个内容。 data 是针对单个 block 发出的,它可能是也可能不是整个响应。

试试这个:

var req = https.get(url, function(res) {
if (res.statusCode !== 200)
res.resume(); // discard any response data
else {
var buf = '';
res.on('data', function(d) {
buf += d;
}).on('end', function() {
var result = JSON.parse(buf);
});
}
});

关于javascript - 无法将 JSON 字符串解析为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29319180/

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