用于json检索的下划线方法

时间:2014-10-15 20:47:34

标签: javascript jquery backbone.js underscore.js marionette

我试图回顾足球足球的价值而不是数字1,2,3,但现在我得到1 2 3你能告诉我我做错了什么.. 提供我的json和牵线木偶代码...... 这个方法setupSports的一些问题...... 在js中有什么方法我们可以轻松地找回足球篮球

_.keys(this.offers)

使用这个我得到nos 1,2但不确定如何获得足球...如何映射

setupSports: function() {
    this.offerCategories = _.map(_.keys(this.offers), function(offer) {
        return {
            title: offer
        };
    });

    this.offerCategories.unshift({ title: SHOW_ALL });

    this.setCurrentSports();
},

JSON

{  
   "sports":{  
      "2":{  
         "soccer":[  
            {  
               "soccerDescription":"uiui",
               "basketballDescription":"uiu",
               "footballDescription":"hhh"
            }
         ]
      },
      "1":{  
         "basketball":[  
            {  
               "soccerDescription":"o",
               "basketballDescription":"i",
               "footballDescription":"i"
            }
         ]
      },
      "6":{  
         "football":[  
            {  
               "soccerDescription":"y",
               "basketballDescription":"h",
               "footballDescription":"ii"
            },
            {  
               "soccerDescription":"o",
               "basketballDescription":"o",
               "footballDescription":"kk"
            }
         ]
      }
   }
}

3 个答案:

答案 0 :(得分:1)

那么你需要遍历第二个对象的键。

this.offerCategories = _.map(_.keys(this.offers), function(offer) {
    return {
        title: _.keys(this.offers[offer])[0]
    };
});

答案 1 :(得分:0)

在JSON对象中定位数据时,您需要将特定路径定位到所需的数据。所以说这是在JS中,你想要console.log这三件事。你会做类似

的事情
var soccer = sports[0].2;
var basketball = sports[0].1;
var football = sports[0].6;

console.log(足球+篮球+足球);

答案 2 :(得分:0)

'这个'是否可能超出范围?尝试

var that = this;
this.offerCategories = _.map(_.keys(this.offers), function(offer) {
    return {
        title: _.keys(that.offers[offer])[0]
    };
});