2011-07-03 11 views
6

मुझे एक क्वेरी फायर करने के बाद परिणाम परिणाम मिला है। कृपया मुझे बताएं कि मैं इसे जेएसपी में जेएसओएन आउटपुट में कैसे परिवर्तित कर सकता हूं।किसी परिणाम सेट ऑब्जेक्ट को JSON प्रारूप आउटपुट में कनवर्ट करने के लिए कैसे करें

दूसरे चरण में, की सुविधा देता है मान लेते हैं कि हम इस लिंक में की तरह एक JSON उत्पादन मिल गया है>http://inknpost.com/eshopping/json.jsp

ऊपर फ़ाइल एक $ .getJSON द्वारा पहुँचा जा रहा है(); एक और फाइल में।

कृपया मुझे बताएं कि मैं पृष्ठ में विभिन्न पंक्तियों में "नाम" और "विभाग" कैसे प्रदर्शित कर सकता हूं।

उत्तर

15

एक पुन: प्रयोज्य जावबीन वर्ग बनाएं जो एक पंक्ति, एक इकाई का प्रतिनिधित्व करता है।

public class Category { 
    private Long id; 
    private String name; 
    private String department; 

    // Add/generate getters/setters/c'tors/equals/hashcode and other boilerplate. 
} 

एक reuseable डीएओ वर्ग जो उन JavaBeans का संग्रह सामान्य JDBC तरह से करने के लिए ResultSet नक्शे बनाएं।

public class CategoryDAO { 
    private static final String SQL_LIST = "SELECT id, name, department FROM category"; 
    // ... 

    public List<Category> list() throws SQLException { 
     List<Category> categories = new ArrayList<Category>(); 

     try (
      Connection connection = database.getConnection(); 
      PreparedStatement statement = connection.prepareStatement(SQL_LIST); 
      ResultSet resultSet = statement.executeQuery(); 
     ) { 
      while (resultSet.next()) { 
       Category category = new Category(); 
       category.setId(resultSet.getLong("id")); 
       category.setName(resultSet.getString("name")); 
       category.setDepartment(resultSet.getString("department")); 
       categories.add(category); 
      } 
     } 

     return categories; 
    } 

    // ... 
} 

एक सर्वलेट वर्ग जो एक JSON serializer/deserializer जो इस तरह के रूप में Google Gson और JavaBeans के arbirary संग्रह JSON स्ट्रिंग के बीच परिवर्तित करने के लिए, सक्षम है का उपयोग किया गया।

@WebServlet("/categories.json") 
public class CategoriesJsonServlet extends HttpServlet { 

    @Override 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     try { 
      List<Category> categories = categoryDAO.list(); 
      String categoriesJson = new Gson().toJson(categories); 
      response.setContentType("application/json"); 
      response.setCharacterEncoding("UTF-8"); 
      response.getWriter().write(categoriesJson); 
     } catch (SQLException e) { 
      throw new ServletException("DB error", e); 
     } 
    } 

} 

इसे http://localhost:8080/contextname/categories.json द्वारा आमंत्रित करें। नहीं, इसमें कोई जेएसपी शामिल नहीं है। आपको एचटीएमएल के अलावा आउटपुट प्रारूपों के लिए जेएसपी का उपयोग नहीं करना चाहिए।

अंत में, jQuery में, बस इसे सामान्य $.getJSON() तरीके से एक्सेस करें।

$('#somebutton').click(function() { 
    $.getJSON('categories.json', function(categoriesJson) { 
     var $table = $('<table>').appendTo($('#somediv')); 
     $.each(categoriesJson, function(index, category) { 
      $('<tr>').appendTo($table) 
       .append($('<td>').text(category.id)) 
       .append($('<td>').text(category.name)) 
       .append($('<td>').text(category.department)); 
     }); 
    }); 
}); 
+2

आपको बहुत साफ और संगठित कोड – skystar7

+3

@ बाल्लूसी महान समाधान धन्यवाद, स्टैक ओवरफ्लो आपके बिना समान नहीं होगा! :) –

3

अपने json बनाने के लिए, आप google-gson लाइब्रेरी का उपयोग कर सकते हैं।

एचटीएमएल:

<table id="mytable"> 
    <tr> <th> Name </th> <th> Department </th> </tr> 
</table> 

फिर, jQuery में अपने json कार्रवाई करने के लिए, यह आपकी आवश्यकताओं पर निर्भर करता है, लेकिन यह सोचते हैं कि आप उन्हें किसी तालिका में दिखाना चाहते हैं, तो आप इसे नीचे दिए तरीक़े कर सकता है

जावास्क्रिप्ट:

$.getJSON("your_url", function(categories){ 
    for(var i=0; i<categories.length; i++){ 
     var name = categories[i].name; 
     var department = categories[i].department; 
     $("#mytable").append('<tr><td>'+ name +'</td><td>'+department+'</td></tr>'); 
    } 
}); 

आशा इस मदद करता है। चीयर्स

संबंधित मुद्दे