Задача по разбору даты JSON - PullRequest
1 голос
/ 22 сентября 2010

У меня есть источник JSON, который отправляет свои данные, которые я отображаю на своей веб-странице. Проблема в том, Часть даты, которую она возвращает, является своего рода объектом javascript.

Пожалуйста, посмотрите пример ответа.

dteInstallDate
 date   16
 day    4
 hours   0
 minutes   0
 month   8
 nanos   0
 seconds   0
 time   1284566400000
 timezoneOffset -480
 year   110

Когда я пытаюсь напечатать объект как console.log. Это печатает

data.resource_data.dteInstallDate.toString()
[object Object]

Моя проблема в том, что я хочу установить этот ответ JSON в свой скрытый ввод Jquery, он обновляет данные в объектном объекте.

$("div#pmItems").find("#dteInstallDate").val(data.resource_data.dteInstallDate);

У меня есть мысли о том, как отправить объект Date со стороны сервера в Javascript. Должен ли я просто преобразовать его в строку или отправить как длинное значение. Какой из них вы считаете лучше?

В качестве бэкэнда у меня Spring MVC

1 Ответ

2 голосов
/ 22 сентября 2010

У вас есть JSON-источник, верно? JSON - это просто нотационный стандарт для межязыкового общения. Хотя объект JSON имеет ту же нотацию, что и сокращенно объявленный объект Javascript, на самом деле это просто представление любого объекта на любом языке. Если бы вы получили фид JSON, который выглядел так:

{
    "dteInstallDate":
    {
        "date"      : 16,
        "day"       : 4,
        "hours"     : 0,
        "month"     : 8,
        "nanos"     : 0,
        "seconds"   : 0,
        "time"      : 1284566400000,
        "timezoneOffset": -480,
        "year"      : 110
    }
}

В Javascript все, что вам нужно сделать, это вызвать свойство dteInstallDate.time и поместить его в новый объект Date (). Рабочий пример здесь:

http://jsfiddle.net/kAxfY/

Как вы видите, время немного отличается от того, что они говорят ... Я пытался дурачиться с TimezoneOffset, чтобы сделать его более точным, но не смог. Как правило, смещения часового пояса выполняются в минутах, поэтому -480 будет означать, что он на -480/60 = -8 час отстает от GMT. Дополнительную информацию об объекте Javascript Date смотрите на этой странице:

http://www.w3schools.com/jsref/jsref_obj_date.asp

Редактировать : и, возможно, немного ближе к сути вашего сообщения ... не имеет значения, как вы отправляете эти данные в браузер, если имеется достаточно информации для создания Объект даты в Javascript. Четыре варианта создания объекта даты:

//no argument means it will create a date representing the local time on the machine on which the browser is running
var d = new Date();

//milliseconds
var d = new Date(1284566400000);

//a string
var d = new Date("October 13, 1975 11:13:00");

//giving precise values for each unit of time
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...