SSH返回Json格式的数据
在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了。在这里以简单的Demo总结两种ssh返回Json格式的数据
项目目录如下
主要是看 上图选择的部分 WebRoot里面就是平常的配置
第一种方法是使用com.google.gson.Gson 将对象转化为Json字符串 (gson-1.6.jar) 主要的代码如下
1 package com.javen.tool; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.http.HttpServletResponse; 7 8 import com.google.gson.Gson; 9 10 public class ResultUtils { 11 public static void toJson(HttpServletResponse response, Object data) 12 throws IOException { 13 Gson gson = new Gson(); 14 String result = gson.toJson(data); 15 response.setContentType("text/json; charset=utf-8"); 16 response.setHeader("Cache-Control", "no-cache"); //取消浏览器缓存 17 PrintWriter out = response.getWriter(); 18 out.print(result); 19 out.flush(); 20 out.close(); 21 } 22 23 24 }
在Action中我们直接将返回的数据封装成Map对象即可 再使用上面的工具类即可
1 public String execute() { 2 Map<String, Object> map = new HashMap<String, Object>(); 3 String status = null; 4 try { 5 System.out.println(name + "" + pass); 6 if (!Tools.isEmpty(name) && !Tools.isEmpty(pass)) { 7 User user = new User(); 8 user.setName(name); 9 user.setPassword(pass); 10 List<User> list = userHander.getUserDAO().findByExample(user); 11 System.out.println(list.size()); 12 if (list.size() > 0) { 13 status = "1"; 14 map.put("users", list); 15 } else { 16 status = "null"; 17 } 18 } else { 19 status = "0"; 20 } 21 map.put("status", status); 22 ResultUtils.toJson(ServletActionContext.getResponse(), map); 23 } catch (IOException e) { 24 // TODO Auto-generated catch block 25 e.printStackTrace(); 26 } 27 return null; 28 }
struts 配置如下
1 <package name="default" extends="struts-default" namespace="/"> 2 <global-results> 3 <result name="error">/Error.jsp</result> 4 </global-results> 5 6 <action name="userAction" class="userAction"> 7 </action> 8 </package>
通过浏览器访问返回的数据如下(http://127.0.0.1:8080/DataJson/userAction?name=javen&pass=123)
第一种方法是使用Struts配置实现 将对象转化为Json字符串 主要的代码如下
1、private Map<String, Object> jsonResult; 将声明的对象封装生成get和set方法
2、封装查询的数据到Map集合中 代码如下
1 public String userToJson(){ 2 Map<String, Object> map = new HashMap<String, Object>(); 3 String status = null; 4 try { 5 System.out.println(name + "" + pass); 6 if (!Tools.isEmpty(name) && !Tools.isEmpty(pass)){ 7 User user = new User(); 8 user.setName(name); 9 user.setPassword(pass); 10 List<User> list = userHander.getUserDAO().findByExample(user); 11 System.out.println(list.size()); 12 if (list.size() > 0) { 13 status = "1"; 14 map.put("users", list); 15 } else { 16 status = "null"; 17 } 18 } else { 19 status = "0"; 20 } 21 map.put("status", status); 22 jsonResult=map; 23 return "success"; 24 } catch (Exception e) { 25 // TODO Auto-generated catch block 26 e.printStackTrace(); 27 } 28 return null; 29 }
3、配置struts (注意要extends >>>json-default)
<!-- 使用struts2 配置来实现 返回Json数据 --> <package name="json" extends="struts-default,json-default" namespace="/"> <global-results> <result name="error">/Error.jsp</result> </global-results> <action name="userjson" class="userAction" method="userToJson"> <result type="json" > <param name="root">jsonResult</param> </result> </action> </package>
通过浏览器访问返回的数据如下
不要让昨天的沮丧 让今天的梦想黯然失色
成功的人总是修改方法而不修改目标
微信公众号:javenlife
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?