我正在尝试从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”。
答案 0 :(得分:2)
您获得的回复是JSONP。通常,API将提供可配置参数的JSON和JSONP。但是,既然你在这里问我,我会假设你无法控制请求(也许对API作者的礼貌信息可能会有所帮助)。
您可以提供响应中使用的命名空间并评估响应。但由于这是Node而不是浏览器,因此这个想法充其量只是愚蠢的。相反,我建议手动将响应操作为JSON:
JSON.parse(response.replace(/^[^\(]*\(/, '').replace(/\);$/, ''));