Javascript 查找json字符串的长度
我有以下JsonstringJavascript 查找json字符串的长度,javascript,json,Javascript,Json,我有以下Jsonstring var j = { "name": "John" }; alert(j.length); 它提醒:未定义,如何查找json数组对象的长度 谢谢javascrit中没有json数组对象。j只是javascript中的一个对象 如果您指的是对象已排除原型的属性数,则可以通过以下方式计算: var length = 0; for (var k in j) { if (j.hasOwnProperty(k)) { l
var j = { "name": "John" };
alert(j.length);
它提醒:未定义,如何查找json数组对象的长度
谢谢javascrit中没有json数组对象。j只是javascript中的一个对象 如果您指的是对象已排除原型的属性数,则可以通过以下方式计算:
var length = 0;
for (var k in j) {
if (j.hasOwnProperty(k)) {
length++;
}
}
alert(length);
让我们从json字符串开始:
var jsonString = '{"name":"John"}';
您可以轻松确定其长度:
alert("The string has "+jsonString.length+" characters"); // will alert 15
然后将其解析为一个对象:
var jsonObject = JSON.parse(jsonString);
一个JavaScript和没有长度。如果您想知道它有多少属性,您需要计算它们:
var propertyNames = Object.keys(jsonObject);
alert("There are "+propertyNames.length+" properties in the object"); // will alert 1
如果Object.keys(从对象获取具有自己属性名称的数组的函数)在您的环境中不可用,则需要手动计算:
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
Jquery中的另一个选项:
var myObject = {"jsonObj" : [
{
"content" : [
{"name" : "John"},
]
}
]
}
$.each(myObject.jsonObj, function() {
alert(this.content.length);
});
另一种方法是使用稍后的JSON.stringify方法,该方法将为对象提供一个字符串,您可以在该字符串上使用length属性:
var x = JSON.stringify({ "name" : "John" });
alert(x.length);
这不是一个json数组对象,它是一个创建对象的字符串文本。它不被认为是一个json对象吗?@RPM-No。是基于ECMAScript对象文本表示法的JavaScript对象表示法。好的,但这涉及到jquery。他在信中从未提到jqueryquestion@RPM哎呀!好的。如果用户更喜欢使用Jquery.haha,那么让它作为替代。没有人觉得这很酷。当我写下我的答案时,我必须检查我是否使用了jQuery函数。我已经习惯使用jQuery了。没错,他要求输入json字符串的长度,但我猜这不是他想要的……谢谢@Bergi。如果你真的认为我的答案是对的,你可以随时对我的答案投赞成票:嘿,你介意编辑一下这个问题,弄清楚它在说什么吗?我打赌你比我更了解这个主题,而且会做得更好。谢谢您在您的标志中提到了JSON数组与普通JSON对象的关系?JSON只是序列化。然而,JS对象更像地图/字典,数组是带有枚举的特殊对象。因此,OP询问的示例对象不是数组。
var x = JSON.stringify({ "name" : "John" });
alert(x.length);