1

这可以在我开始循环之前在 jQuery 中快速完成吗?或者我是否还需要在数据响应中设置一个单独的组,其中总计数可以说..第一个变量?

常见的响应如下所示:

 [
   {"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
   ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
 ]

2但是我会使用 jQuery作为总数返回(在我遍历它们之前?)或者我需要做这样的事情吗?

 [
   {"total":"2"}
   ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
   ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
 ]

这样做的最有效/常见(优化)方式是什么?

4

2 回答 2

7

在 json 解码之后,您将获得一组对象(来自您发布的内容)。您始终可以访问该length属性以获取总数。

当你得到这个数组时,我假设你已经能够将 json 响应解析为一个 JS 对象。您可以使用dataType: 'json'告诉 jQuery 为您自动执行此操作,或者您可以自己使用解析,jQuery.parseJSON()但如果您将标头设置dataType:'json'或设置为来自服务器,则这是必要的。content-Typeapplication/json

所以你可以做这样的事情

$.ajax({
      ....
      dataType: 'json',
      success(function(data){
         if(data){
          var total = data.length; 
         }
      }
 }); 

所以你不需要total count从服务器发回。您可以在获得响应后使用 JS 来获得它,这将使您更容易使用$.each整个数组包含相同类型的对象(没有任何特殊{"total":"2"}成员)来遍历该响应。

注意:length属性是纯香草JS,它与jQuery.

于 2012-06-29T07:44:25.740 回答
1

在 javascript 中,您不操作 JSON(这是一种数据交换标准),而是操作 javascript 对象。

您通常使用

var data = JSON.parse(mystring)

或者仅仅因为您data是 jquery ajax 调用的成功函数的参数:

   $.ajax(
      ....
      dataType:'json',
      success(function(data){
      }) 

解析后,您拥有的是一个 javascript 对象。

在您的情况下,它是一个数组,因此您可以进行标准操作:

var length = data.length;
var secondObject = data[1];
var firstObjectName = data[0].name;
///etc.
于 2012-06-29T07:43:09.833 回答