使用工具类,让Json返回更得体,更好看

本文章所用技术为SpringMVC+JSON

利用工具类轻松将json返回到页面中,而不用手动一个一个去映射

首先呢我们需要定义一个返回json的工具类Resp<T>,这个类呢,我们通常可以自由化配置,这里只举一个范例

import java.io.Serializable;
import java.util.Map;

/**
 *  A return Util to pages
 * @param <T> return data type
 */
public class Resp<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    private final static String SUCCESS_CODE = "200";

    /**
     * The status returned to the page
     */
    private String status;

    /**
     * Message returned to the page
     */
    private String message;

    /**
     * Return data to the page
     */
    private T data;

    /**
     *  Other data that needs to be returned to the page
     */
    private Map<String,Object> rtnMap;

    public Resp() {
        this.status = SUCCESS_CODE;
        this.message = "SUCCESS";
    }

    public Resp(String status, String message, T data) {
        this.status = status;
        this.message = message;
        this.data = data;
    }

    public Resp(String status, String message, T data, Map<String, Object> rtnMap) {
        this.status = status;
        this.message = message;
        this.data = data;
        this.rtnMap = rtnMap;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public Map<String, Object> getRtnMap() {
        return rtnMap;
    }

    public void setRtnMap(Map<String, Object> rtnMap) {
        this.rtnMap = rtnMap;
    }
}

在工具类创建好之后呢,我们就可以去action中测试啦,

在测试之前呢,先要准备好我们需要返回的数据,数据类型可以是各种实体类,Map对象啊等等.....

这里呢我就用我自己写好的一个bean类进行测试

@RequestMapping(value = "/jsonTest")
public Resp RtnTest(){
    // 使用Resp工具类,并设置返回数据类型
    Resp<Object> resp = new Resp<>();
    // 设置返回数据
    UserInfo userInfo = new UserInfo("Liang","21","male","10086");
    // 使用实体类换换工具转换为Map
    Map<String,Object> map = EntityToMap.ConvertToMap(userInfo);
    // 两种方式向页面返回数据
    resp.setData(userInfo);
    resp.setRtnMap(map);

    return resp;
}

到这里可能就有疑惑了 EntityToMap.ConvertToMap(userInfo);这个是用来干嘛的呢?

EntityToMap也是一个很实用的工具类,可以将实体类对象转换为map,用来对数据进行再次加工

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

public class EntityToMap {
    /**
     * @param obj Entity class that needs to be converted
     * @return ConvertedMapObject
     */
    public static Map<String, Object> ConvertToMap(Object obj) {
        Map<String, Object> rtnMap = new HashMap<>();
        if (obj == null) return null;
        Field[] fields = obj.getClass().getDeclaredFields();
        try {
            for (Field field : fields) {
                try {
                    Field f = obj.getClass().getDeclaredField(field.getName());
                    f.setAccessible(true);
                    Object o = f.get(obj);
                    rtnMap.put(field.getName(), o);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        } catch (SecurityException e) {
            e.printStackTrace();
        }
        return rtnMap;
    }
}

通过这两个工具类呢,是不是很方便的可以将我们的数据返回到页面中去了呢?

我们一起来看一下页面中显示的结果吧:

是不是很方便呢?

原文地址:https://www.cnblogs.com/cnliang/p/9656765.html

时间: 2024-08-29 16:56:06

使用工具类,让Json返回更得体,更好看的相关文章

【自制工具类】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 * 其中

不适用工具类解析Json

解析的数据: { "citycode": "101051301", "citydesc": "黑龙江 双鸭山", "cityname": "双鸭山", "data": [ { "date": "2015-08-29", "icon": "d07|n07", "temperatur

Java常用工具类---image图片处理工具类、Json工具类

package com.jarvis.base.util; import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;im

【ListViewJSON】【工具类的功能与实现】

接上一篇博客,这篇博客的重点是分析listviewjson项目中的工具类的功能,以及如何更好地使用这套工具. 项目源码结构图: 假设现在有一个新的项目,同样是解析json数据,并将其显示到listview中. 那么现在考虑一下如何在两个项目之间进行移植. 首先com.demo.app.common是可以直接进行移植的. 那么需要重新写的就是1.bean 2.adapter 3.以及所有和获取列表数据有关.将数据加载到listvie文中有关的类. MainActivity中通过 NewsList

iOS开发--QQ音乐练习,旋转动画的实现,音乐工具类的封装,定时器的使用技巧,SliderBar的事件处理

一.旋转动画的实现 二.音乐工具类的封装 -- 返回所有歌曲,返回当前播放歌曲,设置当前播放歌曲,返回下一首歌曲,返回上一首歌曲方法的实现 头文件 .m文件 1 #import "ChaosMusicTool.h" 2 #import "MJExtension.h" 3 #import "ChaosMusic.h" 4 5 static NSArray *_musics; 6 static ChaosMusic *_playingMusic; 7

Java Web返回JSON工具类

Web项目中经常涉及到AJAX请求返回JSON和JSONP数据.JSON数据在服务器端和浏览器端传输,本质上就是传输字符串,不过这个字符串符合JSON语法格式.浏览器端会按照普通文本的格式接收JSON字符串,最终JSON字符串转成JSON对象通过JavaScript实现.目前部分浏览器(IE9以下浏览器没有提供)和常用的JS库都提供了JSON序列化和反序列化的方法,如jQuery的AJAX请求可以指定返回的数据格式,包括text.json.jsonp.xml.html等. Web服务器端只要把J

springmvc返回json数据的工具类

在ssm框架下,MVC向前端返回数据的json工具类代码如下: public class JsonResult<T> { public static final int SUCCESS=0; public static final int ERROR=1; private int state; private T data; private String message; public JsonResult(int state,Throwable e){ this.state=state; t

HttpServletResponse工具类和HttpServletRequest工具类,前台参数接收方式和后台返回(JSON)数据格式

RequestUtils.java 操作类 package cn.utils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.util.UrlPathHelper; import javax.servlet.http.HttpServletRequest; import java

让iOS开发变得更有效率-分类、工具类

在工作中整理的一些分类与工具类,分享给大家.这些工具类可以减少项目中的代码量,让代码变得更简洁,可以大大的提升项目的效率,直接拖到项目中使用即可.下载地址:https://github.com/leeSmile/tools/tree/master/textTools 欢迎start 分类 NSString+LXExtension 1.根据文件名计算文件大小 2.快速生成缓存/文档/临时目录路径 3.根据文字返回文本占用的高度/宽度 4.MD5加密 /** *  md5加密 */ + (NSStr