获取JSON响应的总数

Con*_*eak 1 jquery json

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

常见的响应看起来像这样:

 [
   {"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
   ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
 ]
Run Code Online (Sandbox Code Playgroud)

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

 [
   {"total":"2"}
   ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
   ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
 ]
Run Code Online (Sandbox Code Playgroud)

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

Pra*_*Nag 7

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

由于你有这个数组,我假设你已经能够将json响应解析为JS对象.您可以使用dataType: 'json'告诉jQuery自动为您执行此操作,或者您可以自己解析,jQuery.parseJSON()但如果您从服务器设置dataType:'json'或设置content-Type标头,则必须这样做application/json.

所以你可以做这样的事情

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

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

注:length物业是纯粹的香草JS,它无关jQuery.