需要Json结果为表格格式

时间:2010-05-03 14:49:20

标签: java html json servlets

我以json格式获得结果,我需要以表格格式显示结果,从html获取输入,执行servlet程序,sparql查询以Json格式显示结果,任何人都可以帮我显示结果以表格形式?

response.setContentType("json-comment-filtered");
response.setHeader("Cache-Control","nocache");

OutputStream out = response.getOutputStream();
//  ResultSetFormatter.outputAsXML(out, results);
System.out.println("called");
out.flush();
JSONOutput jOut = new JSONOutput();
jOut.format(out, results);

很快执行查询,执行代码集并以json格式显示结果,所以任何人都可以帮助我以表格格式获得结果。

1 个答案:

答案 0 :(得分:9)

您的实际问题是您不知道如何在客户端处理JSON字符串。我强烈建议使用jQuery,因为这样可以简化DOM操作。我建议您浏览their tutorials或者就此主题获取decent book

对于jQuery + JSON + Servlet + HTML表格混合,我在herehere之前发布了类似的答案,其中包含代码示例如何在Google GsonjQuery.getJSON的帮助下填充表格一个Servlet,你会发现它很有用。我会从其中一个中进行复制。

这是Servlet和Javabean:

public class JsonServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Data> list = dataDAO.list();
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(new Gson().toJson(list));
    }
}

public class Data {
    private Long id;
    private String name;
    private Integer value;
    // Add/generate getters/setters.
}

JsonServlet(您可以根据需要命名,这只是一个基本示例)应该在web.xml上映射到已知的url-pattern上,让我们使用/json在这个例子中。类Data只表示HTML表(和数据库表)的一行。

现在,您可以在{{3}}的帮助下加载表格:

$.getJSON("http://example.com/json", function(list) {
    var table = $('#tableid');
    $.each(list, function(index, data) {
        $('<tr>').appendTo(table)
            .append($('<td>').text(data.id))
            .append($('<td>').text(data.name))
            .append($('<td>').text(data.value));
    });
});

tableid当然表示相关HTML id元素的<table>

<table id="tableId"></table>

那应该是它。毕竟它相当简单,相信我。祝你好运。