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":[ {"タイプ":"テキスト","テキスト":"バー",....

jsonだけでなく関数を返すのはなぜですか? Web クライアントの使用方法が間違っていませんか?

4

2 に答える 2

3

私が理解しているように、これはJSONP - 関数呼び出しで「パディング」された JSON であり、クロスドメイン データ転送を可能にします。URLで別のコールバック名を渡すと、応答で別の名前が返されることがわかると思います。

(私は Google で働いていますが、この回答は Google からの「公式な」回答ではないことに注意してください。)

于 2012-09-11T03:18:31.320 に答える
0

これをチェックしてください:

Google Dictionary API の json_decode

彼らは実際に結果のjsonpを変更してjsonを取得します

于 2012-09-11T03:22:52.603 に答える