我以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格式显示结果,所以任何人都可以帮助我以表格格式获得结果。
答案 0 :(得分:9)
您的实际问题是您不知道如何在客户端处理JSON字符串。我强烈建议使用jQuery,因为这样可以简化DOM操作。我建议您浏览their tutorials或者就此主题获取decent book。
对于jQuery + JSON + Servlet + HTML表格混合,我在here和here之前发布了类似的答案,其中包含代码示例如何在Google Gson和jQuery.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>
那应该是它。毕竟它相当简单,相信我。祝你好运。