2014-06-09 270 views
0

我有一个类似下面的json对象,如何使用日期对它进行排序?按值排序json对象

json = {"date_hash":{"second_bleed":"2014-09-08","sixth_boost":"2014-10-28","first_boost":"2014-06-24","first_bleed":"2014-08-08","fifth_boost":"2014-09-30","fourth_bleed":"2014-11-03","second_boost":"2014-07-15","fourth_boost":"2014-09-02","third_bleed":"2014-10-06","primary_injection":"2014-06-02","third_boost":"2014-08-05"}} 

我试图做

json['date_hash'].sort(function(a, b){ 

}); 

排序是不是JSON的功能?

+2

它是一个对象,它没有秩序,不能进行排序 – adeneo

+0

看起来像要打印的日期出以某种顺序,所以,首先把所有的日期在一些阵列和排序的话,我建议而推动每个阵列,你可以在那个时候进行排序。 –

+0

没有像JSON对象那样的东西。 JSON(JavaScript Object * Notation *)是一个字符串。 “JSON是*文本格式*,完全不依赖语言...”请参阅:http://www.json.org/ – KooiInc

回答

0

date_hash对象是没有订单(不可排序)的JSON对象。

你应该尽量使用数组:

{"date_hash": [ 
    {"name": "second_bleed", "date": "2014-09-08"}, 
    .... 
    {"name": "sixth_boost", "date": "2014-09-28"} 
]} 

,然后你的东西类似于你使用排序功能。

function (a, b) { 
    if (a.date < b.date) { 
     return -1; 
    } else if (a.date > b.date) { 
     return 1; 
    }; 
    return 0; 
}