我创建一个类型的订票系统,并希望有类似这样的格式来显示数据给用户:通过JSON/Web Service公开这些数据的最佳方式是什么?
Hours
ID 0 1 2 3 4 5 6 7 8 9 . .
------------------------------------------------------------
03/09/2015 ID1 ----++++++++++++++++++++++++++++++++++-------
ID2 -----------++++++++++++----------------------
ID3 ----+++++++++++-----------------+++++++++++++
03/09/2015 ID1 ----++++++++++++++++++++++++++++++++++-------
ID2 -----------++++++++++++----------------------
ID3 ----+++++++++++-----------------+++++++++++++
我还管暴露这个数据,所以我想尝试的Web服务要做到这一点的最佳方式(我要去消费与D3.js这个Web服务)
我可以积点的列表暴露在一个非常原始的方式中的数据:
var data = [
["01/01/2015 00:00:00", "ID1", 0],
["01/01/2015 00:00:15", "ID1", 0],
...
];
似乎有点浪费,因为有很多重复的数据一个将被传输。另一种选择是装在服务器端的数据,并服务于它作为一个“阵列的地图的地图”本身:
var data = [
{date: "01/01/2015", value: [
{id: "ID1", value: [0,0,0,0,1,1,1,1,1...]},
{id: "ID2", value: [0,0,0,0,0,0,0,0,0...]},
{id: "ID3", value: [0,0,0,0,1,1,1,1,1...]}
},
{date: "01/02/2015", ...
];
所以,你有一张地图,用“午夜约会”的关键和map的值,用“id”键和包含96个布尔值的数组的值(每15分钟增加一个值)。但是,该选项似乎与数据表非常紧密地结合在一起。
对于现在和可预见的将来,此表是此Web服务的唯一消费者,因此将其耦合可能并不是那么糟糕。另一方面,对表格的任何更改都可能会迫使我们更改表格视图以及Web服务。
我喜欢这个答案。它以有意义的方式对数据进行分组,但也压缩了它。 – wsaxton 2015-04-06 20:52:34