0

私は次のJsonstringを持っています

  var j = { "name": "John" };
            alert(j.length);

それは警告します:未定義、どうすればjson配列オブジェクトの長さを見つけることができますか??

ありがとう

4

5 に答える 5

8

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を取得する関数がご使用の環境(古いブラウザなど)で使用できない場合は、手動でカウントする必要があります。ArrayObject

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
于 2012-05-18T07:14:05.193 に答える
4

これを行う別の方法は、プロパティJSON.stringifyを使用できるオブジェクト (文字列) を提供するlater メソッドを使用することです。length

var x = JSON.stringify({ "name" : "John" });

alert(x.length);

実施例

于 2012-05-18T07:21:09.957 に答える
3
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
于 2012-05-18T07:11:11.350 に答える
1

javascrit には json Array オブジェクトはありません。jは単なる JavaScript のオブジェクトです。

オブジェクトが持つプロパティの数を意味する場合 (プロトタイプを除く)、次の方法で数えることができます。

  var length = 0;
  for (var k in j) {
    if (j.hasOwnProperty(k)) {
      length++;
    }
  }
  alert(length);
于 2012-05-18T07:13:27.917 に答える
1

Jquery の代替:

 var myObject = {"jsonObj" : [    
        {
            "content" : [
                {"name" : "John"},
            ]
        }
        ]
       }
        $.each(myObject.jsonObj, function() {
           alert(this.content.length);
        }); 

デモ

于 2012-05-18T07:16:53.633 に答える