我找不到任何关于使用jQuery获取总JSON记录数的信息.
这是返回的JSON:
{"Email":"Please enter your Email.","Password":"Please enter a password."}
这是我的代码:
$(function() { $("#btnSubmit").click(function() { $.ajax({ url: "/account/signup", type: "POST", dataType: "json", data: { Email: $("#strEmail").val(), Password: $("#strPassword").val() }, success: function(j) { $(".errMsg").hide(); alert(j.length); // I couldn't get the total count $.each(j, function(n) { $("#err" + n).html(j[n]); $("#err" + n).show(); }) }, error: function(req, status, error) { alert(req); } }); }); });
Tiago.. 68
如果您有这样的事情:
var json = [ {a:b, c:d}, {e:f, g:h, ...}, {..}, ... ]
那么,你可以这样做:
alert(json.length)
这显示了JSON字符串长度,而不是数组计数 (5认同)
谢谢你的回答,但我尝试了你的代码,但我不适合我. (2认同)
谢谢@tiago!你最终给了我我的解决方案,如下:`success:function(response){console.log(response.length); }` (2认同)
TimH.. 15
OP正在尝试计算JSON对象中的属性数.这可以通过迭代器中递增的临时变量来完成,但他似乎想在迭代开始之前知道计数.本页底部提供了满足需求的简单功能.
这是代码的剪切和粘贴,对我有用:
function countProperties(obj) { var prop; var propCount = 0; for (prop in obj) { propCount++; } return propCount; }
这应该适用于JSON对象.对于可能从其原型链派生属性的其他对象,您需要添加hasOwnProperty()测试.
如果您有这样的事情:
var json = [ {a:b, c:d}, {e:f, g:h, ...}, {..}, ... ]
那么,你可以这样做:
alert(json.length)
OP正在尝试计算JSON对象中的属性数.这可以通过迭代器中递增的临时变量来完成,但他似乎想在迭代开始之前知道计数.本页底部提供了满足需求的简单功能.
这是代码的剪切和粘贴,对我有用:
function countProperties(obj) { var prop; var propCount = 0; for (prop in obj) { propCount++; } return propCount; }
这应该适用于JSON对象.对于可能从其原型链派生属性的其他对象,您需要添加hasOwnProperty()测试.
在这种情况下,你为什么要长度?
如果您确实要检查长度,请让服务器返回一个带有键值对的JSON数组,如下所示:
[ {key:value}, {key:value} ]
在JSON中,[和]表示一个数组(具有length属性),{和}表示一个对象(没有length属性).您可以遍历对象的成员,但是您也将获得函数,对成员数量进行长度检查,除了迭代它们之外没用.