0

我的 .cs 页面中有一个 webMethod,它返回一个列表。

这会像这样返回json..

{
    "d": [
        "Saint Clair",
        "Jefferson",
        "Shelby",
        "Tallapoosa",
        "Blount",
        "Talladega",
        "Marshall",
        "Cullman",
        "Bibb",
        "Walker",
        "Chilton",
        "Coosa",
        "Clay",
        "Tuscaloosa",
        "Hale",
        "Pickens",
        "Greene",
        "Sumter",
        "Winston"
    ]
}

我的 jaquery 方法是

   $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: StrUrl,
                data: "{'StateId':'" + Stateid + "'}",
                async: false,
                success: function (response) {
                    var obj = jQuery.parseJSON(response);
                    alert(obj.d[0]);

                }
            })

我想在 Jquery 中遍历这个 json 数据并获取 json 数据中的所有值。

4

4 回答 4

0

jQuery 有一个名为 parseJSON() 的内置方法,它接受一个字符串并返回一个 Javascript 对象。

这是文档的链接

于 2013-07-24T03:38:49.253 回答
0

使用.parseJSON()

var obj = jQuery.parseJSON('{"d":["Saint Clair","Jefferson","Shelby","Tallapoosa","Blount","Talladega","Marshall","Cullman","Bibb","Walker","Chilton","Coosa","Clay","Tuscaloosa","Hale","Pickens","Greene","Sumter","Winston"]}');
var p1 = obj.d;
for (var i = 0; i < p1.length; i++) {
    console.log(p1[i]);
}

检查这个JSFiddle

更新: 检查您是否遇到任何错误

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: StrUrl,
    data: "{'StateId':'" + Stateid + "'}",
    async: false,
    success: function (response) {
        var obj = jQuery.parseJSON(response);
        var p1 = obj.d;
        for (var i = 0; i < p1.length; i++) {
            console.log(p1[i]);
        }
    },    
       error: function(e){
            console.log("Error occured:" + e);
       }
});
于 2013-07-24T03:42:35.347 回答
0

我认为你甚至不需要 JQuery。

只需使用 jquery 打个电话。现在,你的 D 是数组。所以,你需要往下走一步才能得到数组。

这是示例代码

var jsn = //is your json you are getting from web method

jsn.d.forEach(function(a){
console.log(a); // here you are getting every element.
});

如果需要任何进一步的细节,请告诉我。

根据您的评论,它不起作用。这是工作jsfiddle示例。我已经更新了一点 jquery 来向 dom 添加东西。因此,您不必检查控制台。

于 2013-07-24T03:52:39.330 回答
0

由于您有来自服务器的 json 响应,因此您可以dataType: 'json'在 ajax 请求中使用。然后使用$.each()遍历数组

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: StrUrl,
    data: "{'StateId':'" + Stateid + "'}",
    async: false,
    dataType: 'json',
    success: function (response) {
        $.each(response, function(idx, value){
            alert(value)
        });
    }
})
于 2013-07-24T04:04:28.677 回答