0

j-query を使用して ASP.Net Web サービス (.asmx) を呼び出しています。応答は次のような json 配列です。

私のjqueryコードは次のとおりです。

$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
    url: "http://localhost:1000/WebSite2/Service.asmx/HelloWorld",
    data: '{}',
    success: function(msg) {
        alert(msg.d);
    },
    error: function() {  
        alert("Error");   
    }
});

私の応答は次のとおりです。

 [
       {
          "id":1,
          "name":"a",
          "place":"b"
       },
       {
          "id":2,
          "name":"c",
          "place":"d"
       },
       {
          "id":3,
          "name":"e",
          "place":"f"
       }
    ]

j-queryを使用して、配列内の各オブジェクトをリストに追加したい.私は多くの方法を試しましたが、失敗しました

4

4 に答える 4

1

jquery.parseJSONを使用して、json 文字列を json オブジェクトに変換する必要があります。その後、各配列オブジェクトの属性名を使用できます。

ライブデモ

var jsonString =  '[{"id":1,"name":"a","place":"b"},{"id":2,"name":"c","place":"d"}, {  "id":3,"name":"e","place":"f"}]';

jsonArray = $.parseJSON(jsonString );

for(i=0; i < jsonArray.length; i++)
{
    alert(jsonArray[i].id);
    alert(jsonArray[i].name);
    alert(jsonArray[i].place);
}

</p>

于 2012-10-31T04:43:58.940 に答える
1

配列内のオブジェクトを ul に追加しました ...

var data =[
   {
      "id":1,
      "name":"a",
      "place":"b"
   },
   {
      "id":2,
      "name":"c",
      "place":"d"
   },
   {
      "id":3,
      "name":"e",
      "place":"f"
   }
]​;

var html = '<ul>';

$.each(data, function(i) {
    html += '<li id="' + data[i].id + '">Name = '+ data[i].name + ' Place = ' + data[i].place + '</li>'; 
});
html += '</ul>';

$('#divList').append(html);

をに置き換えるdatamsg.d、それは良いはずです..

フィドルをチェック

于 2012-10-31T04:44:14.650 に答える
1

このようなものがうまくいくはずです。約束はありませんが、それは始まりです:

JS

success: function(msg) {
    var len = msg.d.length;
    var message = msg.d;
    for (var i=0; i < len; i++)
       {
        $('ul.container').append('<li id="' +message[i].id+  '" place="' +  message[i].place +  '">' +  message[i].name +  '</li>);
       }
},

HTML

<ul class="container">

</ul>
于 2012-10-31T04:49:14.103 に答える
1

デモ

var jsondata =[
{
  "id":1,
  "name":"a",
  "place":"b"
},
{
  "id":2,
  "name":"c",
  "place":"d"
},
{
  "id":3,
  "name":"e",
  "place":"f"
}
];


$.each(jsondata, function(key,val) {
 $.each(val, function(k,v){   
      alert(v);
 });
});
于 2012-10-31T04:52:50.693 に答える