2010-05-03 5 views
2

Je reçois des résultats au format json, je dois afficher mes résultats dans un format de tableau, Obtenir une entrée de html, en exécutant le programme servlet, la requête sparql montre le résultat au format JSON, peut quelqu'un m'aider à montrer le résultat sous forme de tableau?Besoin de résultats JSON dans un format de table

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); 

bientôt la requête est exécutée, l'ensemble du code est exécuté et les résultats sont affichés en format JSON, donc quelqu'un peut me aider de manière que je peux obtenir des résultats sous forme de tableau.

+0

Pouvez-vous montrer la structure de votre Json? Je suppose que vous récupérez un 'tableau' d'objets? – Tejs

Répondre

9

Votre problème réel est que vous ne savez pas comment traiter la chaîne JSON du côté client. Je suggère fortement d'utiliser jQuery pour cela, car cela simplifie beaucoup la manipulation DOM. Je suggère de passer par their tutorials ou aller chercher un decent book sur le sujet.

Pour le mélange de table jQuery + JSON + Servlet + HTML, j'ai posté des réponses similaires avec des exemples de code avant here et here comment remplir une table avec l'aide de Google Gson et Servlet, vous trouverez peut-être utile. Je copypaste de l'un d'eux.

Voici les servlets et 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. 
} 

Le JsonServlet (vous pouvez nommer tout ce que vous voulez, c'est juste un exemple de base) devrait être mis en correspondance dans web.xml sur un connu url-pattern, utilisons /json dans cet exemple. La classe Data représente juste une ligne de votre tableau HTML (et la table de base de données).

Maintenant, voici comment vous pouvez charger une table avec l'aide de 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)); 
    }); 
}); 

Le tableid bien sûr désigne le id de l'élément HTML <table> en question.

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

Cela devrait l'être. Après tout c'est assez simple, crois-moi. Bonne chance.

Questions connexes