Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用主干解析JSON?_Javascript_Json_Backbone.js - Fatal编程技术网

Javascript 如何使用主干解析JSON?

Javascript 如何使用主干解析JSON?,javascript,json,backbone.js,Javascript,Json,Backbone.js,我正在学习主干,举个小例子。我有一个JSON url,结果如下所示: { help: "Help", success: true, result: { count: 13, results: [ { name: "Name 1", description: "Desc 1", resources: [

我正在学习主干,举个小例子。我有一个JSON url,结果如下所示:

{
    help: "Help",
    success: true,
    result: {
        count: 13,
        results: [
            {
                name: "Name 1",
                description: "Desc 1",
                resources: [
                    {
                        img: "url.jpg"
                    }
                ]
            }, 
            {
                name: "Name 2",
                description: "Desc 2",
                resources: [
                    {
                        img: "url2.jpg"
                    }
                ]
            }
        ]
    }
}
现在我想将所有结果放入一个HTML div中,因此我使用了以下方法:

$(function() {
    var Dataset = Backbone.Model.extend();

    var ProfileList = Backbone.Collection.extend({
        model: Dataset,
        url: 'profiles.json'    
    });   

    var ProfileView = Backbone.View.extend({
        el: "section#block-block-5",
        template: _.template($('#profileTemplate').html()),
        render: function(eventName) {
            _.each(this.model.models, function(profile){
                var profileTemplate = this.template(profile.toJSON());
                $(this.el).append(profileTemplate);
            }, this);

            return this;
        }
    });

    var profiles = new ProfileList();    
    var profilesView = new ProfileView({model: profiles});
    profiles.fetch({
        success: function(){
            profilesView.render();
        }
    });
});

<script id="profileTemplate" type="text/template">
    <div class="profile">
        <div class="info">
            <div class="name">
                <%= name %>
            </div>
            <div class="description">
                <%= description %>
            </div>
            <div class="image">
                <%= resources.url %>
            </div>
        </div>
    </div>
</script>
$(函数(){
var Dataset=Backbone.Model.extend();
var ProfileList=Backbone.Collection.extend({
模型:数据集,
url:'profiles.json'
});   
var ProfileView=Backbone.View.extend({
el:“第#区块-5区”,
模板:35;.template($('#profileTemplate').html()),
渲染:函数(eventName){
_.each(this.model.models、function(profile){
var profileTemplate=this.template(profile.toJSON());
$(this.el).append(profileTemplate);
},这个);
归还这个;
}
});
var profiles=newprofilelist();
var profilesView=newprofileview({model:profiles});
profiles.fetch({
成功:函数(){
profilesView.render();
}
});
});
问题是我不知道如何访问JSON响应中的
结果


谢谢您的帮助。

您应该使用parse函数将模型与
结果
元素的
属性绑定

var ProfileList = Backbone.Collection.extend({
        model: Dataset,
        url: 'profiles.json',
        parse: function (response) {
          return response.result.results;      
        }    
    }); 

相反,模型将一个集合传递给视图,并在集合的解析中返回所需的数据,如响应['result']['results']。