#javascript #json #parsing
#javascript #json #синтаксический анализ
Вопрос:
Я хочу иметь возможность использовать даты для добавления или вычитания, но я не знаю, как отделить даты от остальных данных.
var request = require('request');
request('https://api.nasa.gov/planetary/earth/assets?lon=100.75amp;lat=1.5amp;begin=2014-02-01amp;api_key=DEMO_KEY',
function (error, response, body) {
var data = JSON.parse(body);
console.log(data);
}
);
Это результат, который он дает мне до сих пор.
{
count:56,
results:[
{
date:'2014-02-04T03:30:01',
id:'LC8_L1T_TOA/LC81270592014035LGN00'
},
{
date:'2014-02-20T03:29:47',
id:'LC8_L1T_TOA/LC81270592014051LGN00'
},
{
date:'2014-03-08T03:29:33',
id:'LC8_L1T_TOA/LC81270592014067LGN00'
},
{
date:'2014-03-24T03:29:20',
id:'LC8_L1T_TOA/LC81270592014083LGN00'
}
]
}
Комментарии:
1. { количество: 56, результаты: [ { дата: ‘2014-02-04T03:30:01’, идентификатор: ‘LC8_L1_TOA/LC81270592014035LGN00’ }, { дата: ‘2014-02-20T03:29:47’, идентификатор: ‘LC8_L1_TOA/LC81270592014051LGN00’ }, { дата: ‘2014-03-08T03:29:33’, идентификатор: ‘ LC8_L1_TOA/LC81270592014067LGN00’ }, { дата: ‘2014-03-24T03:29:20’, идентификатор: ‘LC8_L1_TOA/LC81270592014083LGN00’ },
2. Используйте обычные методы массива.
Ответ №1:
Попробуйте это,
var request = require('request');
request('https://api.nasa.gov/planetary/earth/assets?lon=100.75amp;lat=1.5amp;begin=2014-02-01amp;api_key=DEMO_KEY',
function (error, response, body) {
var data = JSON.parse(body);
var result = data.results;
for(var i=0; i<result.length; i ){
console.log(result[i].date);
}
}
);
Ответ №2:
javascript :
var date = new Array();
var json = {
count:56,
results:[
{
date:'2014-02-04T03:30:01',
id:'LC8_L1T_TOA/LC81270592014035LGN00'
},
{
date:'2014-02-20T03:29:47',
id:'LC8_L1T_TOA/LC81270592014051LGN00'
},
{
date:'2014-03-08T03:29:33',
id:'LC8_L1T_TOA/LC81270592014067LGN00'
},
{
date:'2014-03-24T03:29:20',
id:'LC8_L1T_TOA/LC81270592014083LGN00'
}
]
};
var temp = json.results;
for(var i= 0; i<temp.length;i ){
date.push(temp[i].date);
}
console.log(date);
Вот пример jsfiddle:http://jsfiddle.net/43hbB/558 /
Ответ №3:
var results = data.results;
var dateArr = []; //use to storage date
for(var i = 0; i < results.length; i ){
console.log(results[i].date) //just print every date
dateArr.push(results[i].date);
}
console.log(dateArr); //print dateArr
Комментарии:
1. вы ничего не добавляете к
dateArr
2. Я забыл добавить строку: dateArr.push(результаты [i].дата);
Ответ №4:
Попробуйте метод отображения массива для separate
date
извлечения из данных.
var data = obj.results;
var newObj = data.map(function(elem) {
return elem.date;
})
console.log(newObj);
Рабочая скрипка: https://jsfiddle.net/eey2s68L /
Ответ №5:
Чтобы выполнить любое сложение / вычитание по датам, вам необходимо сначала преобразовать полученную дату (строку) в Date
объект.
var allDates= [];
var request = require('request');
request('https://api.nasa.gov/planetary/earth/assets?lon=100.75amp;lat=1.5amp;begin=2014-02-01amp;api_key=DEMO_KEY', function (error, response, body) {
var data = JSON.parse(body);
var results= data.results;
for(var i=0;i<results.length;i ) {
allDates.push(new Date(results[i].date)); //Pushing date objects to an array
//You can do your opertations here, but use (new Date(results[i].date))
}
});