servlet中resultset转化为json (java) list转为json

      最近在做Android从服务端拉取数据,采用doget方式向服务器请求数据。服务端经过Sql查询后得到的ResultSet结果集以json的形式返回。所以重点解决一下数据集是如何封装成json,以及在客户端又是如何把返回的json数据流重组成原数据

      开始之前先大概说一下json的一些东西:

      json格式其实质可看成一个字符串流,只不过它带有json特有的格式:  [{},{},{}...,{}],中括号[]代表的是jsonarray,而其中的花括号{}代表的是jsonobject,json格式的具体情况读者可百度一下,很容易理解

      开始正题:

       先看数据的结构:

             作为演示,采用下列数据集:

                           

也即:data中的数据如下结构

       {"title":"这是一个标题0","image":"这是图片0","info":"这是一个详细信息0"},

       {"title":"这是一个标题1","image":"这是图片1","info":"这是一个详细信息1"},

       {"title":"这是一个标题2","image":"这是图片2","info":"这是一个详细信息2"},

       {"title":"这是一个标题3","image":"这是图片3","info":"这是一个详细信息3"},

       {"title":"这是一个标题4","image":"这是图片4","info":"这是一个详细信息4"},

       {"title":"这是一个标题5","image":"这是图片5","info":"这是一个详细信息5"},

         ...........................(共20组)

 

数据库执行查询后获得的resultset,其结构正如上面所示,具体的数据会有不同,上述只是举例方便,下面的操作读者可自行类比

服务端:

1.将resultset中的数据提取到 List<Map<String, Object>> 结构中:

        List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();

        

2. 将data转化为JSONArray

         

3.将data转化为JSONArray后返回给客户端:

           

 

客户端:

接收到的json数据是流的形式,下面要做的就是将服务器以json格式封装起来的resultset还原回来,将json流重组成List<Map<String, Object>> data

1.在executeHttpGet中获取json格式的接收值,存入String类型的变量中,假设该变量是:receivestring

2.将该receivestring转化为jsonarray:

         

3.reJsonArray中包含了上述的20个jsonobject,所以现在就需要遍历reJsonArray,将每个jsonobject中所携带的key-value对存入map<>中,此处若有不解,先看一下上面的那个存储结构,再结合下面的代码就很好理解了:

          

4.经过上述三步,json流就被还原成了List<Map<String, Object>>结构

 

总结起来,数据的形式变化经历了这样一个过程:

             服务端查询出resultset ------>>> resultset存入List<Map<String, Object>>结构。

             ------>>> 将该List<Map<String, Object>>结构中的数据转换为json格式返回客户端。

             ------>>> 客户端接收到该json流。 ------>>> 将该json流还原成List<Map<String, Object>>结构以供使用

 

 

 

最后贴个我的运行结果图:(得到这个list<Map<String, Object>>结构后后面的操作真真就灵活了很多了,想怎么来就怎么来)

          

附下演示的源码 核心是resultset转json 以及json的还原 

链接:http://pan.baidu.com/s/1dFyj1NN 密码:xwn8

转载于:https://www.cnblogs.com/samilution/p/5456322.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Servlet是一种在Java Web应用程序处理HTTP请求和响应的技术。JSON是一种用于在Web应用程序传输数据的格式。通常,Servlet可以接收JSON格式的数据,处理它们,并将JSON响应发送回客户端。下面是一个简单的Servlet代码示例,它接收JSON格式的数据并将其换为Java对象: ```java @WebServlet("/api/myServlet") public class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 从请求读取JSON数据 BufferedReader reader = request.getReader(); StringBuffer jsonBuffer = new StringBuffer(); String line; while ((line = reader.readLine()) != null) { jsonBuffer.append(line); } reader.close(); String jsonData = jsonBuffer.toString(); // 将JSON数据换为Java对象 ObjectMapper objectMapper = new ObjectMapper(); MyDataObject dataObject = objectMapper.readValue(jsonData, MyDataObject.class); // 处理数据 // ... // 将响应换为JSON格式并发送回客户端 response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); PrintWriter writer = response.getWriter(); String jsonResponse = objectMapper.writeValueAsString(dataObject); writer.write(jsonResponse); writer.close(); } } ``` 在这个例子,我们使用了Jackson库将JSON数据换为Java对象,并将Java对象换为JSON响应。这个例子仅仅是一个演示,实际的应用程序可能需要更多的逻辑来处理数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值