1

我有以下代码:

var json = new WebClient().DownloadString(string.Format(@"http://www.google.com/dictionary/json?callback=dict_api.callbacks.id100&q={0}&sl=en&tl=en", "bar"));

这将返回如下内容:

dict_api.callbacks.id100({"query":"bar","sourceLanguage":"en","targetLanguage":"en","primaries":[{"type":"headword","terms":[ {"type":"text","text":"bar",....

为什么它返回一个函数而不仅仅是 json?我是否错误地使用了 Web 客户端?

4

2 回答 2

3

据我了解,这是JSONP - JSON,它通过函数调用“填充”以允许跨域数据传输。我强烈怀疑,如果您在 URL 上传入不同的回调名称,您会在响应中看到另一个名称。

(请注意,虽然我为谷歌工作,但这个答案不是谷歌以任何方式、形式或形式的“官方”回应。)

于 2012-09-11T03:18:31.320 回答
0

您可能想使用检查一下:

Google Dictionary API 的 json_decode

他们实际上修改了生成的 jsonp 以获取 json

于 2012-09-11T03:22:52.603 回答