我从backbone.js中拉出一个对象,当我对该对象进行字符串化时,我看到了字符串文字
'[{"Name":"Testname","Address":"Testaddress","id":"444444444444444"}]'
但是,当我将非序列化对象分配给变量并尝试访问第0个元素时,我得到了未定义。我希望得到对象
{"Name":"Testname","Address":"Testaddress","id":"444444444444444"}
JavaScript没有处理
[{"Name":"Testname","Address":"Testaddress","id":"444444444444444"}]
作为对象的索引数组?
答案 0 :(得分:1)
要按索引访问Backbone.Collection的元素,请使用Collection#at
方法:
var first = collection.at(0);
或者,你可以使用Collection#first
方法,它实际上是underscore库的一部分,但是代理了Backbone集合的语法糖:
var first = collection.first();
您在序列化JSON中看到数组表示的原因是按照约定JSON.stringify
在您为其提供字符串化的对象上查找名为toJSON
的方法,如果找到一个,将改为使用该方法的返回值。 Collection#toJSON
的实现返回集合内部模型数组的克隆,因此JSON输出是一个数组。
答案 1 :(得分:0)
刚试过
var arr = JSON.parse( '[{"Name":"Testname","Address":"Testaddress","id":"444444444444444"}]' );
和
console.log( arr[0] ); // => object
你所描述的应该有用。