Я пытаюсь получить данные JSON из URL-адреса и нажать значения в функцию. Все значения JSON заключены в кавычки, чтобы иметь правильный формат JSON. Но на самом деле не все значения являются строками.Объект даты в возвращаемых данных JSON, обработанный как строка
Вот JSON образец:
table = [
{
'date1': 'new Date(2015,13,1)',
'content': 'this is the content'
},
{
'date1': 'new Date(2015,13,2)',
'content': 'this is the contentB'
}
];
Файл загружен так:
var req = new XMLHttpRequest();
var url = "http://localhost/json-test";
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
var myData = JSON.parse(req.responseText);
drawFunction(myData);
}
}
req.open("GET", url, true);
req.send();
function drawFunction(myData) {
doSomething();
}
Это работает - но значения "новый Date" являются (разумеется) также возвращаются как строки , Как я могу их преобразовать? Функция должна использовать значение, как это:
table = [
{
'date1': new Date(2015,13,1), //as new Date - not as string - without quotes
'content': 'this is the content'
},
{
'date1': new Date(2015,13,2),
'content': 'this is the contentB'
} ];
я мог бы сделать это совершенно неправильно. Любой намек был бы оценен. Исходный файл JSON не может быть изменен.
Вы должны подумать о отправке метки времени Unix вместо того, чтобы пытаться отправить весь объект даты. – JJJ
Я согласен с @Juhana или посылаю значения месяца, дня и года и создаю их на стороне клиента. – Beartums
JSON - это * строковое представление * данных. Его значения могут быть только строками, числами, булевыми или нулевыми значениями. (см .: http://json.org/). Вам нужно «преобразовать» даты в объекты 'Date' самостоятельно. Вы должны сохранить дату как временную метку, а затем перебрать данные для вызова 'новой даты' на значения. –