2

这是一个简化的代码。我有webservice (.asmx)以下内容:我将一些值存储在中Test class,然后将其存储classarraylist.
我在两个不同的地方做了两次arraylists。然后将这两个数组列表存储在 a 中third arraylist. ,然后将其传递arraylistoutput of webmethod.

 private class Test
        {
            public string Id;
            public string Name;
        }

[网络方法]

      public ArrayList RuleReport(long RuleId)
    {
        Test t = new Test();
        t.Id = "1";
        t.Name = "a";

        ArrayList ar = new ArrayList();
        ArrayList ar2 = new ArrayList();
        ArrayList ar3 = new ArrayList();

        ar.Add(t);

t = new Test();
        t.Id = "2";
        t.Name = "b";
        ar2.Add(t);
        ar3.Add(ar);
        ar3.Add(ar2);
        return ar3;
    }

并且在js文件中我想解析他的json结果以读取每个IdName两个的值arraylists

id=1,name=a
id=2,name=b

这是我的jQuery代码:

 $.ajax(
{ url: " Ajaxes/Rules.asmx/RuleReport",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    type: "POST",
    data: "{'RuleId':'79'}",
    async: false,
    success: function(data) {
    $.each(data.d, function(index, obj) {
    alert(obj.d[0].Id);// something like this. How to do it???
        })

    }, error: function() { }
});

这是火灾错误中的 json 响应:

{"d":[[{"Id":"1","Name":"a"}],[{"Id":"2","Name":"b"}]]}

如何获得每个IdName???

4

1 回答 1

3

使用您当前的$.each循环内设置,您将获得

[{"Id":"1","Name":"a"}]

作为obj. 如您所见,它array of object只是one object内容。您可以使用 访问它objectobj[0]然后可以使用obj[0].Id和访问它们的属性obj[0].Name

您可以使用以下代码执行此操作

$.each(data.d,function(index,obj){

       var id = obj[0].Id;
       var name = obj[0].Name;
       // do what ever you want with them
   })​

工作小提琴

于 2012-05-19T13:38:43.187 回答