Jquery 正在获取JSON响应的总计数
在我开始循环使用jQuery之前,这可以在jQuery中快速完成吗?或者我还需要在数据的响应中设置一个单独的组,总计数如下所示。。第一个变量 常见的响应如下所示: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作为总计数(在我循
[
{"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文件,所以数据交换更好