Google Dictionary API(未记录)使用 JSONP,它不是真正的 JSON,因此您不能以您喜欢的方式在 node.js 中使用它(如您在评论中指出的那样)。你必须得到eval()
回应。
注意查询参数有callback=dict_api.callbacks.id100
什么?这意味着返回的数据将像这样返回:dict_api.callbacks.id100(/* json here */, 200, null)
因此,您有两个选择: 1:在您的代码中创建一个函数:
var dict_api = { callbacks: { id100: function (json_data) {
console.log(json_data);
}};
request({url: url, 'json': true}, function(error, resp, body){
// this is actually really unsafe. I don't recommend it, but it'll get the job done
eval(body);
});
或者,您可以删除开始 ( dict_api.callbacks.id100(
) 和结束 ( ,200,null)
[假设这将始终相同]),然后JSON.parse()
是生成的字符串。
request({url: url, 'json': true}, function(error, resp, body){
// this is actually really unsafe. I don't recommend it, but it'll get the job done
var json_string = body.replace('dict_api.callbacks.id100(', '').replace(',200,null)', '');
console.log(JSON.parse(json_string));
});