zoukankan      html  css  js  c++  java
  • 【自制工具类】struts返回json数据包装格式类

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

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

    上demo:

     1 import java.util.HashMap;
     2 
     3 
     4 /**
     5 * JSON响应处理工具类
     6 * 
     7 * 返回一个json对象,包含status/msg/data,
     8 * checkOK()默认status:200/checkFail()默认status:500
     9 * 其中checkOK(Object data)比较特殊,直接返回的是这个对象的json
    10 * 其他均为status/msg/data返回格式
    11 * 
    12 * @author Hellxz
    13 * @date 2017年10月21日
    14 * @version 1.0
    15 */
    16 public class JsonResult {
    17 
    18     /**检查成功,返回200**/
    19     public static Object checkOK(){
    20         Object result = build(200, null, null);
    21         return result;
    22     }
    23     /**检测成功,返回200,msg**/
    24     public static Object checkOK(String msg){
    25         Object result = build(200, msg, null);
    26         return result;
    27     }
    28     /**检查成功,直接返回json对象**/
    29     public static Object checkOK(Object data){
    30         Object result = com.alibaba.fastjson.JSONObject.toJSON(data);
    31         return result;
    32     }
    33     
    34     /**检查成功的响应,返回200,msg,data**/
    35     public static Object checkOK(String msg, Object data){
    36         Object result = build(200, msg, data);
    37         return result;
    38     }
    39     
    40     /**检查失败,只返回500**/
    41     public static Object checkFail(){
    42         Object result = build(500, null, null);
    43         return result;
    44     }
    45     public static Object checkFail(String msg){
    46         Object result = build(500, msg, null);
    47         return result;
    48     }
    49     
    50     /**检查失败的响应 500,msg,data**/
    51     public static Object checkFail(String msg,Object data){
    52         Object result = build(500, msg, data);
    53         return result;
    54     }
    55     
    56     /**返回转换后的json对象(自定义状态码,信息,data)**/
    57     public static Object build(Integer status, String msg, Object data){
    58         HashMap<String,Object> map = new HashMap<>();
    59         map.put("status", status);
    60         map.put("msg", msg);
    61         map.put("data", data);
    62         Object json = com.alibaba.fastjson.JSONObject.toJSON(map);
    63         return json;
    64     }
    65     
    66 }

    因为这是个工具类,所有方法都是静态方法,所以,写出输出流需要自己手动写出来,下边就简单写一个需要放在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);

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

  • 相关阅读:
    Linux shell 脚本中变量的数学计算【转】
    Ubuntu上配置Eclipse:安装CDT【转】
    第一个Java程序示例——Hello World!【转】
    Cmake的介绍和使用 Cmake实践【转】
    CMake使用总结【转】
    Ubuntu 16.04安装JDK/JRE并配置环境变量【转】
    Linux进程间通信——使用信号量【转】
    wpa_supplicant介绍【转】
    【转】Android屏幕适配全攻略(最权威的官方适配指导)
    SQL2005备份数据库到远程服务器中
  • 原文地址:https://www.cnblogs.com/hellxz/p/7782264.html
Copyright © 2011-2022 走看看