使用Play框架实现Google可视化数据源

时间:2011-07-19 04:16:17

标签: json playframework google-visualization

我正在玩Play!涉及使用Google Visualization API绘制类似于以下内容的JSON数据的项目:

[{"votes":4,"ID":123,"rating":50,"name":"Bob"}]

我当前的设置涉及在视图中使用jQuery $.getJSON,请求返回带renderJSON()的数据的URL。然后,我使用.each构建Google Visualization数据表。这种方法很好;但是,我未来的数据集可能会扩展,以这种方式构建数据表似乎效率低下。

理想情况下,我希望能够将格式化的JSON传递到DataTable constructor或使用google.visualization.Query并跳过手动添加行,但我仍然坚持如何最好地完成这个。看看这些选项,似乎我可以尝试格式化我的JSON响应,类似于文档中描述的示例:

var dt = new google.visualization.DataTable(
 {
   cols: [{id: 'task', label: 'Task', type: 'string'},
            {id: 'hours', label: 'Hours per Day', type: 'number'}],
   rows: [{c:[{v: 'Work'}, {v: 11}]},
          {c:[{v: 'Eat'}, {v: 2}]},
          ...

或者我可以尝试使用Visualization Data Source Library。不幸的是,我的Java知识还不足以让我确定如何在Play中开始设置!如果有人能指出我正确的方向,那将非常感激。

提前致谢。

P.S。我喜欢这个游戏!框架。我从没想过能用这么少的努力就能做到这么多。

1 个答案:

答案 0 :(得分:1)

如果你不熟悉Java,不要进入自定义数据源方向,因为很明显,谷歌提供了一个很好的库但代码却停留在Java servlet上。不幸的是,Play不使用java servlet(这是构成框架的一个原因)并且使用Google库,您通常需要深入研究代码以找到要使用的正确类。

所以我建议你使用一个简单的JSON生成器在Ajax中创建Play上的{cols:...,rows:...}并使用简单的持久性模块(如Siena)来保存数据(好吧我'如果你真的想留在Java EE世界附近,我不是客观的我是siena :))或JPA的首席开发者。

你必须编写一些代码来生成你的JSON(GSON很好的文档),但是通过一些工作它是非常简单的。