Javascript 查找json字符串的长度

Javascript 查找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

我有以下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)) {
      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);