如果我有一个像下面这样的JSON对象,我如何提取所有startdate字段来比较它们,所以我可以,例如,获得最小开始日期?
{
a:{
b1:{
c1:{
startdate:'2017-01-01',
enddate:'2017-01-02'
},
c2:{
startdate:'2016-01-01',
enddate:'2017-01-02'
}
},
b2:{
c3:{
startdate:'2015-01-01',
enddate:'2017-01-02'
},
c4:{
startdate:'2014-01-01',
enddate:'2017-01-02'
}
}
}
}
答案 0 :(得分:0)
像YakovL指出的那样: 以下内容对您无效,因为您的json无效。
你不能遍历你的json,因为它没有数组。它有许多不同的属性。
你可以得到这样的数据:
var json = JSON.parse(YourJson);
var startdatec1 = json.a.b1.c1.startdate;
对于所有其他日期,您可以这样做,然后比较它们。但更好的改变json就像它有意义一样。例如,使它看起来像:
[
{
"startdate":"2017-01-01",
"enddate":"2017-01-02"
}
,
{
"startdate":"2016-01-01",
"enddate":"2017-01-02"
}
,
{
"startdate":"2015-01-01",
"enddate":"2017-01-02"
}
,
{
"startdate":"2014-01-01",
"enddate":"2017-01-02"
}
]
然后你可以这样循环:
var json = JSON.parse(YourJson);
for(var i = 0; i < json.length; i++) {
var startDate = json[i].startDate;
// compare startDates and save the lowest
}