0

jQuery を使用して JSON データを印刷しているときに問題に直面しています。

JSON 出力:

[
{"id":"1", "product_name":"banana", "price":"10"},
{"id":"2", "product_name":"apple", "price":"15"},
{"id":"3", "product_name":"pineapple", "price":"20"}
]

以前getJSON()は、API の JSON 出力からデータを取得していました。

JSON 出力を印刷するには、jQuery を使用しました。

data = $.parseJSON(data);
$.each( data, function( key, value ) {
   $('p').append(key + ':' + value);
});

上記のコードは何も出力していないようです。

どこが間違っていますか?

4

2 に答える 2

1

まず、日付は既に JSON のように見えるため、必要ありません$.parseJSON(data);。配列の各項目をループしています。配列の各項目はオブジェクトであるため、各オブジェクトのプロパティも反復処理する必要があります:ライブ デモ (クリック)。

var data = [
  {
    "id":"1", 
    "product_name":"banana",
    "price":"10"
  },
  {
    "id":"2", 
    "product_name":"apple", 
    "price":"15"
  },
  {
    "id":"3", 
    "product_name":"pineapple", 
    "price":"20"
  }
];

$.each( data, function(i, obj) {
  $.each(obj, function(key, value) {
   $('p').append(key + ':' + value);
  });
});
于 2014-01-19T05:49:32.740 に答える
0

まず、あなたの JSON は有効ではありません...
第二に、あなたが使用getJSON()していて、サーバーの応答が JSON に正しく含まれている場合は、JSON を解析する必要はありません..その行を削除すると、動作するはずです

これを試して

$.each( data, function( key, value ) {
  $('p').append(key + ':' + value);
});
于 2013-08-01T10:01:46.633 に答える