Javascript 读取从API REST返回的JSON对象

Javascript 读取从API REST返回的JSON对象,javascript,json,rest,backbone.js,Javascript,Json,Rest,Backbone.js,我觉得问这个问题很愚蠢,但我三天前就同意了。。。我构建了一个php api rest,它返回一个json编码信息。api返回的json是正确的,如下所示: [ {"pk_user":"1","name":"George","surname":"Littlewolf","profile":"Game designer - Developer"}, {"pk_user":"2","name":"Anne","surname":"Carpenter","profile":"Develo

我觉得问这个问题很愚蠢,但我三天前就同意了。。。我构建了一个php api rest,它返回一个json编码信息。api返回的json是正确的,如下所示:

[
    {"pk_user":"1","name":"George","surname":"Littlewolf","profile":"Game designer - Developer"},
    {"pk_user":"2","name":"Anne","surname":"Carpenter","profile":"Developer"},
    {"pk_user":"3","name":"John","surname":"Sullivan","profile":"Designer"},
    {"pk_user":"4","name":"Judith","surname":"Lenders","profile":"Developer"},
    {"pk_user":"5","name":"Jason","surname":"Middleton","profile":"Manager"}
]
之后,我将创建一个主干前端来攻击api。我只开发了一个视图,它读取我上面写的json。我有一个模型(用户)和一个集合(用户),我想保存从json信息中读取的信息

我将只放视图的渲染函数的代码:

render: function() {
    var users = new Users();
    users.fetch();
    $.each(users['models'], function(i, item) {
        console.log(item);
    });


    this.template = _.template(template, {users : users});
    this.$el.html(this.template);
    return this;
}
现在,控制台只返回您在下图中看到的内容:

我想直接访问这些项目,但我不知道为什么,但我所做的一切都不起作用。。。谢谢,请原谅我的新手解释。。。 编辑


我已经通知了所有想“现场”查看问题的人。

不确定这是否是您想要的,但如果您想记录用户的属性,只需执行以下操作:

$.each(users['models'], function(i, item) {
    console.log(item.attributes);
});
是一个AJAX调用,因此:

users.fetch();
无法立即填充集合,它必须等待服务器响应。因此,当您查看
users.models
时,那里将没有任何内容,而您的视图最终将一无所获

通常的方法是侦听来自
用户的事件,并呈现HTML以响应这些事件:

initialize: function() {
    this.collection = new Users;
    this.listenTo(this.collection, 'reset', this.render);
    // bind to other events as needed...
    this.users.fetch({ reset: true });
},
render: function() {
    this.collection.each(function(user) {
        // render the `user` model in here...
    });
}
请注意切换到,而不是直接处理集合的
models
属性

或者,在调用
fetch
时使用成功处理程序:

this.users.fetch({
    success: function(collection) {
        collection.each(function(user) {
            // render the `user` model in here...
        });
    }
});

我也尝试过这个解决方案,但不起作用。我已上载代码,以便您可以在线查看问题。对不起,我不完全了解问题所在。我在上传的代码中看到,当
users.fetch()
从服务器获取JSON对象时,由于代码一直在运行,用户将是空的。这是你的问题吗?收集用户它实际上不是空的。问题是我不知道如何访问我在用户中加载的每个用户。事实上,我在javascript控制台上打印的内容是
用户['models']
,您可以看到数据的存在,但我不知道如何访问everty用户信息。这可能是你第一次发表评论,但我不知道为什么不起作用:(它工作得很好。感谢你的回答,不仅帮助我解决了问题,而且我也理解了它的工作原理。谢谢。