Я пытаюсь сгенерировать JSON из данных, организованных с помощью PHP, и хочу убедиться, что я структурирую его так, чтобы это имело смысл как JSON. Имея дело с такими данными в PHP чаще, чем с JSON, я думаю, что, возможно, я злоупотребляю объектами PHP-ассоциативных массивов / JSON с данными, которые я хотел бы сохранить для заполнения поля выбора формы.
Данные включают элементы, каждый из которых имеет массив связанных дат; каждая дата имеет массив раз, и каждый раз имеет местоположение и URL, которые могут быть уникальными для этой комбинации даты и времени. Прямо сейчас я использую даты и время в качестве ключей в объектах JSON, что неудобно манипулировать с JS и, возможно, является проблемой для упорядочения данных. JSON в настоящее время выглядит следующим образом:
{
"1":{
"name":"Item 1",
"dates":{
"July 21, 2015":{
"4:30PM":{
"location":"Place 1",
"url":"example.com/item1-timed-430"}
},
"July 22, 2015":{
"9:30AM":{
"location":"Earth Hall",
"url":"example.com/item1-timed-930"}
},
"July 23, 2015":{
"9:30AM":{
"location":"Earth Hall",
"url":"example.com/item1-timed-930"}
}
},
"base_url":"example.com/base-item1"},
"2":{
"name":"Item 2",
"dates":{
"July 21, 2015":{
"9:30AM":{
"location":"Place 3",
"url":"example.com/item2-timed-930"},
"12:30PM":{
"location":"Place 3",
"url":"example.com/item2-timed-1230"}
},
"July 22, 2015":{
"4:30PM":{
"location":"Place 1",
"url":"example.com/item2-timed-430"}
}
},
"base_url":"example.com/base-item2"}
}
Оригинальные вопросы:
Прежде всего — следует ли изменить рефракторинг для использования списков JSON (и неассоциативных массивов PHP), если мне нужно сохранить хронологический порядок? Кажется, в настоящее время оно сохраняется, но я понимаю, что в разных браузерах это может быть по-разному.
Второе — как мне провести рефакторинг? Добавьте к каждому элементу список дат, список времен и используйте текущий dates
объект как карта дат, связанных с временем с уникальным местоположением и данными URL? Есть ли более простой способ сделать это?
Отредактированный вопрос для определения проблемы кодирования:
Можно ли ожидать сохранения хронологического порядка в разных браузерах? Если нет, что я должен изменить в структуре данных, чтобы обеспечить доступ к упорядоченному списку дат и времени, а также к конкретному URL-адресу даты и времени и данным о местоположении?
Это самоуверенный вопрос …
Однако формат JSON сильно зависит от приложения, которое будет его использовать. Если легче иметь дело с ассоциативными массивами, и циклически проходить по ним не проблема, то сделайте это. В идеале ваши данные должны быть структурированы в иерархической структуре, которая имеет смысл для разработчика и приложения.
Других решений пока нет …