0

見つけた Google API からデータを取得しようとしています。問題は、この ASP のドキュメントが見つからないことです (秘密の ASP に違いありません)。何らかの理由で、次のリンクから JSON データを取得できません。

http://www.google.com/ig/calculator?hl=en&q=1GBP=?USD&callback=?

私のエラーは私のJSFiddleに表示されます

「Uncaught SyntaxError: Unexpected token :」というエラーが表示されます。

これに関するヘルプは素晴らしいでしょう。

4

1 に答える 1

0

計算機 API は有効な JSON を返しません。ラベルは引用符で囲まれていないため、直接解析することはできません。できる唯一のことは、jQuery に JSON を解析させる前に、ラベルに引用符を手動で追加することです。これで有効になります。

{lhs: "1 British pound",rhs: "1.5637 U.S. dollars",error: "",icc: true}
 ^ no quotes

以下は、各ラベルをそれ自体に置き換えて引用符を追加する、簡単で汚いソリューションです。各ラベルがハードコードされているため、これはあまり堅牢ではありませんが、正しいアイデアが得られるはずです。

        var data = '{lhs: "1 British pound",rhs: "1.5637 U.S. dollars",error: "",icc: true}';            
             data = data.replace('lhs:', '"lhs":');
             data = data.replace('rhs:', '"rhs":');
             data = data.replace('error:', '"error":');
             data = data.replace('icc:', '"icc":');

            data = JSON.parse(data);

            for(i in data) {
                content = data[i];
                $("#data-list").append(content.text + "<hr />");
            }

同じオリジン ポリシーを回避するには、同じドメインのサーバー サイド スクリプトを介して API リクエストをプロキシします。

jQuery は JSONP をサポートしていますが、問題は、jQuery が JSON を変更する前に JSON を解析しようとすることです。

于 2013-06-12T09:22:29.657 に答える