JSONで表現したいスパース配列があります。例えば:
-10 => 100
-1 => 102
3 => 44
12 => -87
12345 => 0
これどうやってするの?これはできますか?
JSONで表現したいスパース配列があります。例えば:
-10 => 100
-1 => 102
3 => 44
12 => -87
12345 => 0
これどうやってするの?これはできますか?
単純なオブジェクトとして表すことができます:
{
"-10" : 100,
"-1" : 102,
"3" : 44,
"12" : -87,
"12345" : 0
}
単純なオブジェクトになるため、配列と同じ方法で反復することはできませんが、次のfor...in
ステートメントを使用できます。
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
var value = obj[key];
}
}
また、特定の要素にキーでアクセスしたい場合は、ここでも角括弧プロパティ アクセサーを使用できます。
obj['-10']; // 100
hasOwnProperty
ループ内でメソッドを使用していることに注意してfor...in
ください。これは、プロトタイプ チェーンの上位レベルで定義されたプロパティの反復を防ぐためです。これにより、問題や予期しない動作が発生する可能性があります... 詳細はこちら.
はい、できます。JSON オブジェクトのメンバー名は文字列です。文字列は、UTF-8 でエンコードされた任意の値を保持できます。
{
"-10" : 100,
"-1" : 102,
"3" : 44,
"12" : -87,
"12345" : 0
}