0

まず第一に、私はjsonにかなり慣れていないので、ひどい間違いを犯した場合はご容赦ください。YQL を使用して Web サイトから json オブジェクトを取得するコードがいくつかあります。それは文字列として返されます。だから今、これをjsonオブジェクトに解析してから読みたいと思います。これは私のコードです:

$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url=%22http://iphone-api.uitzendinggemist.nl/v1/episodes.json%22%20and%20xpath=%27*%27&format=json", function(data) {
console.log(data);
content = data.query.results.html.body.p;
json = JSON.stringify(eval("(" + content + ")"));
str = json.revoked;
$('#table').append('<li>' + str + '</li>');
});

JSフィドル

なぜこれが与えられるべき値ではなく、未定義になるのか理解できません。

だから今私の質問は、ここにいる誰かがそれが正しく機能していない理由を知っているかどうかということでした.

4

2 に答える 2

0

変数は配列です。jsonインデックスにアクセスする必要があります。

string = json[0].revoked;

于 2012-11-09T17:26:48.847 に答える
0

コードには非常に多くのエラーがあります。実行している各ステップを理解しようとする必要がありますが、理解していないようです。これは、何かを行うコードのフォークです。何をしたいのかわかりません。あなたが間違ったことをいくつかお話しします。

  1. var関数内で新しい変数を宣言するときにキーワードを使用する
  2. を使用して JSON を解析するeval()のではなく、何らかのパーサーを使用してください。例: $.parseJSON()eval()返されたスクリプトはクライアントで実行され、データの取得のみに関心があるため、使用はセキュリティ リスクです。
  3. HTML を作成するときは、表示するテキストをエンコードするように注意してください。あなたの場合、文字列を連結しないでください('<li>' + str + '</li>')。jQuery ( $('<li>').text(str)) を使用できます。
  4. li要素に要素を追加しないでくださいtableulまたは要素に追加するかol、テーブルの場合は行とセルを作成します。
  5. なぜあなたが評価するのかは完全に不明であり、それらはオブジェクトを文字列化します。同じ正確なデータになります。
于 2012-11-09T17:52:11.407 に答える