Google Dictionary API(文書化されていない)はJSONPを使用しますが、これは実際にはJSONではないため、node.jsで(コメントに記載されているように)希望どおりに使用することはできません。あなたはeval()
応答する必要があります。
クエリパラメータがどのようになっているのかに注目してcallback=dict_api.callbacks.id100
ください。つまり、返されるデータは次のように返されます。dict_api.callbacks.id100(/* json here */, 200, null)
したがって、2つのオプションがあります。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));
});