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);

换成应该就好了data..msg.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 回答