【自制工具类】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);

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

时间: 2024-10-19 21:17:03

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

struts返回json数据

想要在struts中返回json格式数据有两种办法. 1.使用servlet的输出流 实际上就是在struts中获取response对象的输出流.然后写入你要返回的json数据,本质和用servlet返回json数据是一样的,需要自己导入json的jar包.不做详细介绍. 2.试用struts对json的扩展 这里需要两个jar包,xwork-core-2.1.6.jar和struts2-json-plugin-2.1.8.jar.如果是用MyEclipse注入的struts环境就不需要手动了.

spring mvc 返回json数据的三种方式

一.返回ModelAndView,其中包含map集 /* * 返回ModelAndView类型的结果 * 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式为{"valid",true}) */ @RequestMapping(value = "/checkNameExistsMethod2", produces = "application/json;charset=UTF-8") //这里的prod

【Struts2】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.P

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

这篇我将介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据. 一.其中主要步骤有: 1.将struts2-json-plugin.jar插件拷贝到项目的"/WEB-INF/lib"文件夹下: 2.编写Action类文件: 3.在struts.xml文件中配置这个Action,这个Action所在的"<package.../>"必须继承”json-default“,Action的Result类型为json,即ty

SpringMVC中controller返回json数据的两种方法

SpringMVC中controller返回json数据的两种方法 1.jsp的ajax请求: function getJson(){ $.ajax({ type:"get", dataType:"json", url:"<%=basePath %>getJson", success:function(data){ for(var i=0;i<jsonData.length;i++){ alert("Id:"

转载:深入了解Struts2返回JSON数据的原理及具体应用范例

早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身, 渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找我询问,我又细细地给他讲了一遍之后,才觉得无论如何要抽一个小时的时间来写这篇文章, 从头到尾将Struts2与JSON的关系说清楚. 其实网络中,关于这个问题的答案已是海量,我当初也是从这海量的答案中吸收精华,才将“Struts2返回JSON数据”这个问题搞清楚的.但 是这些海量的答案,有一个共同

CoAP学习笔记——nodeJS node-coap返回JSON数据包

0 前言 本文说明如何使用node-coap返回JSON数据包.CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性.node-coap使用nodejs实现了coap的客户端和服务器端. [测试环境]--ubuntu/Linux [相关博文] [CoAP协议文档--The Constrained Application Protocol (CoAP)] [CoAP协议学习--CoAP基础] [CoAP学习

idea+springmvc+spring+mybatis+maven整合返回json数据webapi

首先看一张目录结构图: : 创建步骤: 1.创建maven  webapp工程, 创建完后的目录结构为: 2.添加项目依赖(添加jar包) 需要的jar包: spring-webmvc, spring-test, spring-orm, commons-dbcp, mybatis, mybatis-spring, mysql-connector-java, commons-fileupload, jstl,jackson-core, jackson-databind, jackson-mappe

SpringBoot 03_利用FastJson返回Json数据

自上一节:SpringBoot 02_返回json数据,可以返回json数据之后,由于有些人习惯于不同的Json框架,比如fastjson,这里介绍一下如何在SpringBoot中集成fastjson来实现对数据的json序列化. 在使用fastjson时,可以有以下两种集成方式,但是都需要引入fastjson的依赖包 1:引入fastjson依赖包 <dependency> <groupId>com.alibaba</groupId> <artifactId&g