JavaScriptの配列があり、その中にはURLが含まれています。単純にURLをページに入れようとすると(この配列はYahoo!Maps APIを含むプロジェクトの中にあります)、本来あるべきURLが表示されます。
しかし、リダイレクトを行ったり、単にリンク配列要素に 'alert'を実行しようとすると、次のようになります。
となります。
私の見るところ、これはブラウザがページをレンダリングする際にJSON.encodeを行っているため、リンクは問題なく表示されています。リダイレクト(リンクでやりたいこと)を正しく行うために、いくつかの方法('eval'の使用を含む)を試しましたが、うまくいきませんでした。
いくつかの提案に従って、eval('(' + jsonObject + ')')
を実行しましたが、やはり同じ出力が返されます。
では、どのようにしているのでしょうか?
この文章がアラートで表示されたら
function(){return JSON.encode(this);}
alert(myArray[i])を実行したときに、次のようなテキストが表示される場合、いくつかの可能性が考えられます。
最も簡単な方法は、typeof(myArray[i])をチェックすることです。
JavaScriptでのJSONデコードは、文字列を信頼している場合は単にeval()、信頼していない場合は http://json.org にある安全なコードを使用します。
これで、必要なデータを取得するためのJavaScriptのデータ構造ができあがります。