2016-11-21 4 views
-4

だから、私のサーバーは、次のような構造でJSONファイルを受け取るようになります。JSONファイルの配列内のオブジェクトの数を数えるには?

{ 
"serial": "123", 
"pass": "abc", 
"archives": [ 
    { 
     "values" = 1 
    }, 
    { 
     "values" = 2 
    }, 
    { 
     "values" = 3 
    }, 
    { 
     "values": 4 

    } 
    ] 
} 

は、どのように私は私のメインファイルからから「アーカイブ」配列内のオブジェクトの数を数えることができますか? (ここでは4つ)

+1

通常、配列の長さはどのようにしてわかりますか? – jonrsharpe

+1

は有効なjsonではありません。 – corn3lius

+3

これは本当に研究上の努力を示していません... – Argee

答えて

1

あなたのオブジェクトがobj呼び出された場合:

var obj = { 
"serial": "123", 
"pass": "abc", 
"archives": [ 
    { 
     "values": 1 
    }, 
    { 
     "values": 2 
    }, 
    { 
     "values": 3 
    }, 
    { 
     "values": 4 
    } 
    ] 
}; 

そして、それはobj.archives.lengthです。

ところで、あなたのJSONが無効であったので修正しました。実際のサーバーではJSON.parsetry/catchブロックの内側に配置するか、無効なJSONでコードをクラッシュさせないようにtryjsonを使用する必要があります。

+0

有効なjsonを仮定して... – corn3lius

+0

@ corn3liusええ - それはありませんでした。それを私が直した。 – rsp

0

Array.length:JavaScript配列長さプロパティは、配列の要素数を指定する符号なし32ビット整数を返します。配列の長さの設定にも使用できます。

構文

戻る配列の長さ:

array.length 

設定し、配列の長さ:

array.length = number 

コード

var obj = {"serial": "123","pass": "abc","archives": [{"values": 1}, {"values": 2}, {"values": 3}, {"values": 4}]}; 
 
var len = obj.archives.length; 
 

 
console.log(len);

いつでも配列を切り捨てるようにlengthプロパティを設定することができます。長さプロパティを変更して配列を拡張すると、実際の要素の数は増加しません。たとえば、長さを現在2に設定している場合、長さを3に設定すると、配列にはまだ2つの要素しか含まれません。したがって、lengthプロパティは配列内の定義された値の数を必ずしも示すものではありません。 relationship between length and numerical propertiesも参照してください。

関連する問題