2

jQuery $.ajax()我有一个 Web 服务,它通过成功回调中的调用返回此字符串:

[{"WaitlistID":1,"RID":45034,"CustomerID":2765957,
 "IsAdmin":false,"TruckSize":1,"Points":1},
 {"WaitlistID":2,"RID":45034,"CustomerID":2765957,
 "IsAdmin":false,"TruckSize":1,"Points":1}]

不幸的是,如果我$.each()在成功回调中调用该值,它会遍历其中的每个字母,并且不会将其视为二元素数组,这正是我想要的。我已经尝试了makeArray() 函数,但没有任何运气,如何将该字符串转换为 JSON 对象数组?

编辑:

作为对评论的回应(谢谢大家),我已经将 dataType 设置为“json”,这很奇怪。这是有问题的代码。

jQuery.ajax({
    type: "POST",
    url: pagePath + "/" + fn,
    contentType: "application/json; charset=utf-8",
    data: paramList,
    dataType: "json",
    success: successFn,
    error: errorFn
});

..所以我不确定为什么它最初不起作用,但是 parseJSON() 位成功了。感谢大家的帮助。

4

4 回答 4

4

您可以使用jQuery.parseJSON来解析它:

var obj = $.parseJSON(str);

但是,如果服务器返回正确的内容类型,jQuery 应该已经为您完成了这项工作。如果不是,您可以指定 jQuery 将响应视为 JSON:

$.get("test.php", function(data){
   // callback
}, "json");

或者更好的是,使用jQuery.getJSON

于 2012-06-18T20:25:45.313 回答
1

尝试使用jQuery.parseJSON()解析!

于 2012-06-18T20:25:50.157 回答
1

你所返回的是一个字符串。尝试设置dataTypein$.ajax调用。

$.ajax({
   url: blahblah,
   dataType: 'json',
   ...
});
于 2012-06-18T20:25:52.247 回答
1

你有:

success: successFn

是否successFn()存在,它会带一个参数吗?即,它的定义是这样的function successFn(myObject)吗?如果是这样,myObject将包含 JSON 字符串描述的对象。无需解析。

于 2012-06-18T20:31:02.540 回答