1

私はbackbone.jsからオブジェクトをプルしていますが、オブジェクトを文字列化すると文字列リテラルが表示されます

'[{"Name":"Testname","Address":"Testaddress","id":"444444444444444"}]'

ただし、シリアル化されていないオブジェクトを変数に割り当てて0番目の要素にアクセスしようとすると、未定義になります。私はオブジェクトを取得することを期待します

{"Name":"Testname","Address":"Testaddress","id":"444444444444444"}

JavaScriptは処理していません

[{"Name":"Testname","Address":"Testaddress","id":"444444444444444"}] 

オブジェクトのインデックス付き配列として?

4

2 に答える 2

1

インデックスでBackbone.Collectionの要素にアクセスするには、次のCollection#atメソッドを使用します。

var first = collection.at(0);

Collection#firstまたは、実際にはアンダースコアライブラリの一部であるが、シンタックスシュガーのバックボーンコレクションにプロキシされるメソッドを使用することもできます。

var first = collection.first();

シリアル化されたJSONに配列表現が表示される理由は、慣例により、指定したオブジェクトでJSON.stringify呼び出されたメソッドを検索して文字列化するためです。メソッドtoJSONが見つかった場合は、代わりにそのメソッドの戻り値が使用されます。の実装はCollection#toJSON、コレクションのモデルの内部配列のクローンを返すため、JSON出力は配列になります。

于 2013-02-26T21:56:16.300 に答える
0

試してみました

var arr = JSON.parse( '[{"Name":"Testname","Address":"Testaddress","id":"444444444444444"}]' );

console.log( arr[0] ); // => object

あなたが説明したことはうまくいくはずです。

于 2013-02-26T22:02:01.300 に答える