0

非常に基本的な JSON 抽出物がここに表示されます。

[
  { first: "bob", last: "jones", },
  { first: "josh", last: "smith", }
]

を使用してこれを HTML に解析しようとしています$.getJSON

以前にこの jquery 関数を使用したことがなく、問題が発生しています。私の推測では、info div に何かが欠けていると思います。

現在、この例には JSON URL がありますが、実際のコードには実際の URL があります。

ガイダンスをありがとう、これが私のコードです:

Javascript

$.getJSON('JSON URL', 'limit=5', processNames);

function processNames(data) {
  var infoHTML='';

  $.each(data, function(name) {
    infoHTML += 'First: ' + name.first;
    infoHTML += 'Last: ' + name.last;
  });

  $('#info').html(infoHTML);
}

HTML

<div id="info"></div>
4

2 に答える 2

3

JSON が無効です。フィールド名を囲む引用符がありません。次のようなことを試してください:

[
    { "first": "Bob", "last": "Jones" },
    { "first": "Josh", "last": "Smith" }
]
于 2013-08-12T02:03:00.283 に答える
0

JSON では、キーは二重引用符で囲む必要があります (文字列も同様です)。一重引用符は使用できません。引用符が必要です。

JSON を使用する場合は、それが有効であることを確認する必要があります。

コンマ、引用符、または不一致の括弧を見逃すのは非常に簡単です。そのためには、JSONバリデーターを使用することをお勧めします

質問の JSON オブジェクトを確認したところ、次の 2 つの理由で無効であることがわかりました。

  1. 有効な JSON オブジェクトは常にプロパティ名を ["] で囲む必要があります
  2. 2 番目の値の直後に余分なコンマ [,] がありますが、代わりに中括弧が必要です。

サーバーから回答を受け取ったら、これが期待どおりの回答であるかどうかを確認することをお勧めします。たとえば、 $.each(data, function(name) の前に、次のことができます

alert(JSON.stringify(data,));

これにより、サーバーから受信した文字列が表示されます。

通常、$.getJSON の代わりに $.ajax を使用することをお勧めします。これは、サーバーからの応答をより詳細に制御できるため、キャッシュや非同期呼び出しなどを行うかどうかを決定できるためです。

ここでjQuery Ajax APIを見ることができます

私の答えがお役に立てば幸いです。

于 2013-08-12T05:11:39.407 に答える