我有以下 Jsonstring
var j = { "name": "John" };
alert(j.length);
它警告:未定义,我如何找到 json Array 对象的长度?
谢谢
我有以下 Jsonstring
var j = { "name": "John" };
alert(j.length);
它警告:未定义,我如何找到 json Array 对象的长度?
谢谢
让我们从 json 字符串开始:
var jsonString = '{"name":"John"}';
您可以轻松确定其长度:
alert("The string has "+jsonString.length+" characters"); // will alert 15
然后将其解析为一个对象:
var jsonObject = JSON.parse(jsonString);
JavaScript不是,也没有长度。如果你想知道它有多少属性,你需要计算它们:Object
Array
var propertyNames = Object.keys(jsonObject);
alert("There are "+propertyNames.length+" properties in the object"); // will alert 1
如果在您的环境(旧版浏览器等)中无法使用从 中获取(自己的)属性名称Object.keys
的函数,则需要手动计数:Array
Object
var props = 0;
for (var key in jsonObject) {
// if (j.hasOwnProperty(k))
/* is only needed when your object would inherit other enumerable
properties from a prototype object */
props++;
}
alert("Iterated over "+props+" properties"); // will alert 1
另一种方法是使用后JSON.stringify
一种方法,该方法将为您提供一个对象(一个字符串),您可以在该对象上使用该length
属性:
var x = JSON.stringify({ "name" : "John" });
alert(x.length);
function getObjectSize(o) {
var c = 0;
for (var k in o)
if (o.hasOwnProperty(k)) ++c;
return c;
}
var j = { "name": "John" };
alert(getObjectSize(j)); // 1
javascrit 中没有 json Array 对象。j
只是javascript中的一个对象。
如果您指的是对象具有的属性数量(不包括原型的),您可以通过以下方式计算它:
var length = 0;
for (var k in j) {
if (j.hasOwnProperty(k)) {
length++;
}
}
alert(length);
Jquery 中的替代方法:
var myObject = {"jsonObj" : [
{
"content" : [
{"name" : "John"},
]
}
]
}
$.each(myObject.jsonObj, function() {
alert(this.content.length);
});