自己写的一个给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. SpringMVC配置双数据源,一个java项目同时连接两个数据库

    数据源在配置文件中的配置 请点击--->   java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 <pre name="code" class=" ...

  2. 为什么要学ADO.NET。。。什么是ADO.NET。。。

    之前学的 •只能在查询分析器里查看数据,操作数据,我们不能让普通用户去学sql,所以我们搭建一个界面(Web Winform)让用户方便的操作数据库中的数据.   •ADO.NET就是一组类库,这组类 ...

  3. Selenide UI 自动化测试

       我没有拼写错误,确实不是 Selenium ,但是,只要是 Web UI 自动化测试框架,基本上都是基于Selenium 的.Selenide 也不例外.那为啥不直接用Selenium呢? 因为 ...

  4. Linux(CentOS7.1)修改默认yum源为国内的阿里云yum源

    官方的yum源在国内访问效果不佳. 需要改为国内比较好的阿里云或者网易的yum源 修改方式: 下载wget yum install wget -y echo 备份当前的yum源 mv /etc/yum ...

  5. Java 字符编码与解码

    1.字符编码的发展历程 ①.ASCII 码 因为计算机只认识数字,所以我们在计算机里面的一切数据都是以数字来表示,因为英文字符有限,所以规定使用的字节的最高位是 0,每一个字节都是以 0-127 之间 ...

  6. C# DataTable抽取Distinct数据(不重复数据)

    http://blog.csdn.net/jyh_jack/article/details/17959821 DataTable dataTable; DataView dataView = data ...

  7. Sql 关于 查俩个表 第二个表用到第一个表的某一个数据

    今天在写程序的时候遇到一个问题  有一个这个需求 select top 1 Name,[Address] from UserInfo;select * from shoppingAddress whe ...

  8. golang 栈操作

    Monk's Love for Food   Our monk loves food. Hence,he took up position of a manager at Sagar,a restau ...

  9. centos6环境下使用yum安装Ambari

    前言: Ambari是apache下面的开源项目,主要通过web UI方式对Hadoop集群进行统一创建和管理,以节省Hadoop集群的运维成本.本文通过安装过程中的截图简要介绍一下相关步骤供需要的朋 ...

  10. 你知道BFC、IFC、FFC、GFC及多栏自适应布局吗?

    FC(Formatting Context)格式化内容,常见的FC有BFC.IFC.FFC.GFC四种类型,BFC和IFC是W3C CSS2.1规范提出的概念,FFC和GFC是W3C CSS3规范提出 ...