我正在尝试从 node.js 中的 API 获取分数,我得到的响应看起来像一个函数。我不确定如何从此函数中获取 JSON 数据。
var req = http.request(options, function(res){
res.setEncoding('utf8');
res.on('data', function(data){
console.log(data);
});
});
响应是...
shsMSNBCTicker.loadGamesData({
"sport": "NBA",
"period": "20140426",
"games": [""]
});
在“游戏”中是一堆数据,但这些数据并不重要,而且会占用太多空间。对于这个例子,假设我正在尝试“运动”;这将返回“NBA”。
最佳答案
您得到的响应是 JSONP .通常,API 会提供 JSON 和 JSONP 可配置参数。但是,既然您在这里提问,我将假设您无法控制该请求(也许向 API 作者发送一条礼貌的消息可能会有所帮助)。
您可以提供响应中使用的命名空间并评估响应。但由于这是 Node 而不是浏览器,这个想法充其量是愚蠢的。相反,我建议将响应手动操作为 JSON:
JSON.parse(response.replace(/^[^\(]*\(/, '').replace(/\);$/, ''));
关于javascript - API正在返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23318174/