分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

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

发布时间:2023-09-06 02:15责任编辑:郭大石关键词:暂无标签

本文章所用技术为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; ???}}

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

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

是不是很方便呢?

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

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved