从Play传递Json对象! HighCharts JS的框架

时间:2013-09-10 06:02:56

标签: json highcharts playframework-2.0


http://www.playframework.com/documentation/2.1.x/JavaTodoList

使用上面的教程作为参考,我创建了一个应用程序,它通过Application控制器从模型发送数据到视图。 我已设法将模型(任务)显示为高图表。代码在这里。

public static Result format(){      
    return ok(views.html.frmt.render("Visualize it",Task.all()));
}

这将转到此视图页面。 http://ideone.com/ycz9ko

目前,我在javascript代码本身内部使用scala模板。请参阅第9-14行和第20-24行。这种不雅的做事风格并不是最佳选择。

我希望能够使用Json来完成上述任务。

public static Result jsonIt(){
    List<Task> tasks = Task.all();
    return ok(Json.toJson(tasks));
}    

我的Qns是如何将JSON对象发送到视图模板。 以及如何将其解析为Highcharts格式。有没有一些标准程序来做到这一点?或者我必须写自己的方法来做到这一点? 如果有人能给我看一个代码片段,那就太棒了。另外我更喜欢不使用Ajax的帖子。我想先知道如何做到这一点。

我还发现这个stackoverflow帖子很有用。how to parse json into highcharts。但是,它没有回答关于从Play格式转换为Highcharts格式的部分。

提前致谢

1 个答案:

答案 0 :(得分:0)

您不需要将json object传递给您的模板,而是可以从客户端javascript(您的模板)执行ajax调用并获取json响应,您可以在javascript代码中进一步使用它来构建图表。例如 : 你有一些绑定到你的控制器jsonIt()的路径,就像这样/ chartsdata / json 然后使用jquery shorthand获取ajax请求:

var chart_data = $.get('/chartsdata/json', function(data) {
   return data;
});

现在,您可以使用chart_data an array of objects,其中每个对象代表一个任务,在您的其他javascript代码中构建图表。