PHP关联数组的JSON模式

时间:2015-07-21 17:45:54

标签: php json associative-array jsonschema

我正在尝试从通过PHP组织的数据生成JSON,我想确保我以一种有意义的方式构建它作为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和位置数据?

1 个答案:

答案 0 :(得分:0)

这是一个自以为是的问题......

但是,JSON的格式在很大程度上取决于将要使用它的应用程序。如果它更容易处理关联数组,并且循环它们不是一个问题,那么就去做吧。理想情况下,您的数据应该采用对开发人员和应用程序有意义的层次结构。