自己写的一个给struts返回的json数据包装格式类,不喜勿喷,原创,需在项目中引入com.alibaba.fastjson的jar包

先看下效果(这里没有使用msg,有兴趣的往下看):

上demo:

 import java.util.HashMap;

 /**
* JSON响应处理工具类
*
* 返回一个json对象,包含status/msg/data,
* checkOK()默认status:200/checkFail()默认status:500
* 其中checkOK(Object data)比较特殊,直接返回的是这个对象的json
* 其他均为status/msg/data返回格式
*
* @author Hellxz
* @date 2017年10月21日
* @version 1.0
*/
public class JsonResult { /**检查成功,返回200**/
public static Object checkOK(){
Object result = build(200, null, null);
return result;
}
/**检测成功,返回200,msg**/
public static Object checkOK(String msg){
Object result = build(200, msg, null);
return result;
}
/**检查成功,直接返回json对象**/
public static Object checkOK(Object data){
Object result = com.alibaba.fastjson.JSONObject.toJSON(data);
return result;
} /**检查成功的响应,返回200,msg,data**/
public static Object checkOK(String msg, Object data){
Object result = build(200, msg, data);
return result;
} /**检查失败,只返回500**/
public static Object checkFail(){
Object result = build(500, null, null);
return result;
}
public static Object checkFail(String msg){
Object result = build(500, msg, null);
return result;
} /**检查失败的响应 500,msg,data**/
public static Object checkFail(String msg,Object data){
Object result = build(500, msg, data);
return result;
} /**返回转换后的json对象(自定义状态码,信息,data)**/
public static Object build(Integer status, String msg, Object data){
HashMap<String,Object> map = new HashMap<>();
map.put("status", status);
map.put("msg", msg);
map.put("data", data);
Object json = com.alibaba.fastjson.JSONObject.toJSON(map);
return json;
} }

因为这是个工具类,所有方法都是静态方法,所以,写出输出流需要自己手动写出来,下边就简单写一个需要放在action类中的小方法,配合以上工具类食用风味更佳~!

/**以response形式将对象写回客户端,推荐传入JSON对象**/
public void writeOut(Object obj){
response.setContentType("text/json;charset=utf-8");
PrintWriter writer = null;
try {
writer = response.getWriter();
writer.println(obj);
} catch (IOException e) {
e.printStackTrace();
} finally{
writer.flush();
writer.close();
}
}

于是在action中只需要引入最上边提到的工具类,然后用这个方法写回给客户端就好了,so简单~

//写出成功
writeOut(JsonResult.checkOK();
writeOut(JsonResult.checkOK("输出成功");
writeOut(JsonResult.checkOK("输出成功",Object o);
writeOut(JsonResult.checkOK(Object o); //这个是唯一不同格式的
//写出失败
writeOut(JsonResult.checkFail();
writeOut(JsonResult.checkFail("输出失败");
writeOut(JsonResult.checkFail("输出失败",Object o);
//自定义
writeOut(JsonResult.build(400,"你好",Object o);

如果有更好的代码欢迎交流

【自制工具类】struts返回json数据包装格式类的更多相关文章

  1. struts返回json数据

    想要在struts中返回json格式数据有两种办法. 1.使用servlet的输出流 实际上就是在struts中获取response对象的输出流.然后写入你要返回的json数据,本质和用servlet ...

  2. spring mvc 返回json数据的四种方式

    一.返回ModelAndView,其中包含map集 /* * 返回ModelAndView类型的结果 * 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式 ...

  3. struts框架返回json数据

    设置返回result类型为json格式 <package name="cn.konngo.action" namespace="/" extends=&q ...

  4. 【Struts2】SSH如何返回JSON数据

      在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就 ...

  5. 深入了解Struts2返回JSON数据的原理

    首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...

  6. J2EE Web开发入门—通过action是以传统方式返回JSON数据

    关键字:maven.m2eclipse.JSON.Struts2.Log4j2.tomcat.jdk7.Config Browser Plugin Created by Bob 20131031 l ...

  7. Struts2返回Json数据(使用Struts2插件)

    这篇我将介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据. 一.其中主要步骤有: 1.将struts2-json-plugin.jar插件拷贝到项目的&q ...

  8. (转)Struts2返回JSON数据的具体应用范例

    转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...

  9. Struts2返回JSON数据的具体应用范例

    早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找 ...

随机推荐

  1. hello world 为什么我们看到学习中有这一句话!!!

    Hello World ,中文意思:你好,世界.世界上的第一个程序就是Hello World,由Brian Kernighan创作. Hello, world"程序是指在计算机屏幕上输出“H ...

  2. Linux 下Beanstalk安装

    1.安装 # wget https://github.com/kr/beanstalkd/archive/v1.10.tar.gz # tar xzvf v1.10 # cd beanstalkd-1 ...

  3. chromedriver与chrome版本映射列表

    chromedriver与chrome版本映射列表: chromedriver版本 支持的Chrome版本 v2.30 v58-60 v2.29 v56-58 v2.28 v55-57 v2.27 v ...

  4. Python玩转硬件:TPYBoard-Micropython开发板大盘点

    学习python能做什么? 可以快速搭建一个漂亮的网站 可以写爬虫 实现微信机器人助手 可以实现很多自动化的任务 -- IEEE发布2017年编程语言排行榜:Python更是高居首位,那么Python ...

  5. HTML5 Audio/Video 标签,属性,方法,事件汇总 (转)

    HTML5 Audio/Video 标签,属性,方法,事件   <audio> 标签属性:src:音乐的URLpreload:预加载autoplay:自动播放loop:循环播放contro ...

  6. HTTP2的新特性

    多路复用 二进制分帧 首部压缩(Header Compression) 服务端推送(Server Push) 请求优先级

  7. Java框架之Hibernate(三)

    本文主要讲解: 1 级联 cascade 关键字 2 级联删除 3 inverse 关键字 4 懒加载 5 缓存的模拟 6 Hibernate 的一级缓存 7 Hibernate 的二级缓存 一.级联 ...

  8. java equals == contentEquals

    equals与== 经常用于比较,用法如下:字符串比较相同用equals,普通数值(基本数据类型)比较用==, contentEquals下面讲 理论准备: java的基本类型如int.float,d ...

  9. 使用FormatMessage函数编写一个内核错误码查看器

    在编写驱动程序的时候,常用的一个结构是NTSTATUS,它来表示操作是否成功,但是对于失败的情况它的返回码过多,不可能记住所有的情况,应用层有一个GetLastError函数,根据这个函数的返回值可以 ...

  10. sql servel 报错:将 expression 转换为数据类型 int 时出现算术溢出错误。

    执行sql语句:SELECT   AVG( DATEDIFF(s,s.CreatedDate,s.SendDate)  ) AS submitTime FROM dbo.SmsSend AS s    ...