Нужны результаты Json в формате таблицы - PullRequest
2 голосов
/ 03 мая 2010

Я получаю результаты в формате json, мне нужно отобразить свои результаты в виде таблицы. Получая входные данные из html, запустив программу-сервлет, запрос 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 Ответ

9 голосов
/ 03 мая 2010

Ваша актуальная проблема в том, что вы не знаете, как обрабатывать строку JSON на стороне клиента. Я настоятельно рекомендую использовать для этого jQuery , поскольку это значительно упрощает манипулирование DOM. Я предлагаю пройти их уроки или получить приличную книгу на эту тему.

Для смеси таблиц jQuery + JSON + Servlet + HTML я уже публиковал подобные ответы до здесь и здесь с примерами кода, как заполнять таблицу с помощью Google Gson и сервлет, вы можете найти его полезным. Я скопирую пасту с одного из них.

Вот сервлет и 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-таблицы (и таблицы базы данных).

Теперь вот как вы можете загрузить таблицу с помощью jQuery.getJSON :

$.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 обозначает id рассматриваемого элемента HTML <table>.

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

Так и должно быть. В конце концов, это довольно просто, поверь мне. Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...