Как использовать данные JSON

#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))
  }
});