Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 正在获取JSON响应的总计数_Jquery_Json - Fatal编程技术网

Jquery 正在获取JSON响应的总计数

Jquery 正在获取JSON响应的总计数,jquery,json,Jquery,Json,在我开始循环使用jQuery之前,这可以在jQuery中快速完成吗?或者我还需要在数据的响应中设置一个单独的组,总计数如下所示。。第一个变量 常见的响应如下所示: [ {"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"} ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"} ] 但是我会使用jQuery返回2作为总计数(在我循

在我开始循环使用jQuery之前,这可以在jQuery中快速完成吗?或者我还需要在数据的响应中设置一个单独的组,总计数如下所示。。第一个变量

常见的响应如下所示:

 [
   {"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
   ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
 ]
但是我会使用jQuery返回
2
作为总计数(在我循环遍历它们之前?),还是需要这样做

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

做这件事最有效/最常见(优化方面)的方法是什么?

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

您通常使用

var data = JSON.parse(mystring)
或者仅仅因为您的
数据
是jquery ajax调用成功函数的参数:

   $.ajax(
      ....
      dataType:'json',
      success(function(data){
      }) 
一旦解析,您就拥有了一个javascript对象

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

var length = data.length;
var secondObject = data[1];
var firstObjectName = data[0].name;
///etc.

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

您通常使用

var data = JSON.parse(mystring)
或者仅仅因为您的
数据
是jquery ajax调用成功函数的参数:

   $.ajax(
      ....
      dataType:'json',
      success(function(data){
      }) 
一旦解析,您就拥有了一个javascript对象

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

var length = data.length;
var secondObject = data[1];
var firstObjectName = data[0].name;
///etc.

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

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

所以你可以这样做

$.ajax({
      ....
      dataType: 'json',
      success(function(data){
         if(data){
          var total = data.length; 
         }
      }
 }); 
因此,您不需要从服务器返回
总计数。在获得响应后,您可以使用JS获得该结果,这将使您更容易使用JS遍历该响应,因为整个数组包含相同类型的对象(没有任何特殊的
{“total”:“2”}
成员)


注意:这个
length
属性是纯香草JS,它与
jQuery
没有任何关系,因为在json解码之后,您将获得一个对象数组(从您发布的内容中)。您始终可以访问该属性以获取总计数

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

所以你可以这样做

$.ajax({
      ....
      dataType: 'json',
      success(function(data){
         if(data){
          var total = data.length; 
         }
      }
 }); 
因此,您不需要从服务器返回
总计数。在获得响应后,您可以使用JS获得该结果,这将使您更容易使用JS遍历该响应,因为整个数组包含相同类型的对象(没有任何特殊的
{“total”:“2”}
成员)


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

无关,如果它位于变量
data
中,您可以始终使用
data访问它的长度。length
这样我就不需要在响应中返回总数了?你能用更详细的答案发布答案吗?如果它在变量
data
中,你可以使用
data.length
访问它的长度,这样我就不需要在响应中返回总数了?你能给出一个更详细的答案吗?我想我可能有点迂腐,但我不认为json是一种编码格式。我认为像ascii、utf-8这样的东西是编码格式。JSON更像是一个CSV文件,所以数据交换更好,我想我可能有点迂腐,但我不认为JSON是一种编码格式。我认为像ascii、utf-8这样的东西是编码格式。JSON更像一个CSV文件,所以数据交换更好