packagecom.nxhfzx.gdshopping.entity;importjava.util.List;importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;/***

* @Title: LeeJSONResult.java

* @Package com.lee.utils

* @Description: 自定义响应数据结构

* 这个类是提供给门户,ios,安卓,微信商城用的

* 门户接受此类数据后需要使用本类的方法转换成对于的数据类型格式(类,或者list)

* 其他自行处理

* 200:表示成功

* 500:表示错误,错误信息在msg字段中

* 501:bean验证错误,不管多少个错误都以map形式返回

* 502:拦截器拦截到用户token出错

* 555:异常抛出信息

* Copyright: Copyright (c) 2016

* Company:Nathan.Lee.Salvatore

*

*@authorleechenxiang

* @date 2016年4月22日 下午8:33:36

*@versionV1.0*/

public classJSONResult {//定义jackson对象

private static final ObjectMapper MAPPER = newObjectMapper();//响应业务状态

privateInteger status;//响应消息

privateString msg;//响应中的数据

privateObject data;private String ok; //不使用

public staticJSONResult build(Integer status, String msg, Object data) {return newJSONResult(status, msg, data);

}public staticJSONResult ok(Object data) {return newJSONResult(data);

}public staticJSONResult ok() {return new JSONResult(null);

}public staticJSONResult errorMsg(String msg) {return new JSONResult(500, msg, null);

}public staticJSONResult errorMap(Object data) {return new JSONResult(501, "error", data);

}public staticJSONResult errorTokenMsg(String msg) {return new JSONResult(502, msg, null);

}public staticJSONResult errorException(String msg) {return new JSONResult(555, msg, null);

}publicJSONResult() {

}//public static LeeJSONResult build(Integer status, String msg) {//return new LeeJSONResult(status, msg, null);//}

publicJSONResult(Integer status, String msg, Object data) {this.status =status;this.msg =msg;this.data =data;

}publicJSONResult(Object data) {this.status = 200;this.msg = "OK";this.data =data;

}publicBoolean isOK() {return this.status == 200;

}publicInteger getStatus() {returnstatus;

}public voidsetStatus(Integer status) {this.status =status;

}publicString getMsg() {returnmsg;

}public voidsetMsg(String msg) {this.msg =msg;

}publicObject getData() {returndata;

}public voidsetData(Object data) {this.data =data;

}/***

* @Description: 将json结果集转化为LeeJSONResult对象

* 需要转换的对象是一个类

*@paramjsonData

*@paramclazz

*@return*

*@authorleechenxiang

* @date 2016年4月22日 下午8:34:58*/

public static JSONResult formatToPojo(String jsonData, Class>clazz) {try{if (clazz == null) {return MAPPER.readValue(jsonData, JSONResult.class);

}

JsonNode jsonNode=MAPPER.readTree(jsonData);

JsonNode data= jsonNode.get("data");

Object obj= null;if (clazz != null) {if(data.isObject()) {

obj=MAPPER.readValue(data.traverse(), clazz);

}else if(data.isTextual()) {

obj=MAPPER.readValue(data.asText(), clazz);

}

}return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);

}catch(Exception e) {return null;

}

}/***

* @Description: 没有object对象的转化

*@paramjson

*@return*

*@authorleechenxiang

* @date 2016年4月22日 下午8:35:21*/

public staticJSONResult format(String json) {try{return MAPPER.readValue(json, JSONResult.class);

}catch(Exception e) {

e.printStackTrace();

}return null;

}/***

* @Description: Object是集合转化

* 需要转换的对象是一个list

*@paramjsonData

*@paramclazz

*@return*

*@authorleechenxiang

* @date 2016年4月22日 下午8:35:31*/

public static JSONResult formatToList(String jsonData, Class>clazz) {try{

JsonNode jsonNode=MAPPER.readTree(jsonData);

JsonNode data= jsonNode.get("data");

Object obj= null;if (data.isArray() && data.size() > 0) {

obj=MAPPER.readValue(data.traverse(),

MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));

}return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);

}catch(Exception e) {return null;

}

}publicString getOk() {returnok;

}public voidsetOk(String ok) {this.ok =ok;

}

}

java jsonresult_Java好的的工具类:JSONResult相关推荐

  1. java inputtools_Java后台开发常用工具类

    本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接.格式转换.文件操作.发送邮件等等.提高开发效率,欢迎收藏与转载. 数据库连接工具类 数据库连接工具类--仅仅获得连接对象 ...

  2. java 兼容excel_Java解析Excel工具类(兼容xls和xlsx)

    依赖jar org.apache.poi poi-ooxml 4.0.1 ExcelUtils.java package javax.utils; import java.io.File; impor ...

  3. java中定义一个CloneUtil 工具类

    其实所有的java对象都可以具备克隆能力,只是因为在基础类Object中被设定成了一个保留方法(protected),要想真正拥有克隆的能力, 就需要实现Cloneable接口,重写clone方法.通 ...

  4. 【java笔记】Collections集合工具类

    java.utils.Collections是集合工具类,用来对集合进行操作 常用方法: public static<T>boolean addAll(Collection<T> ...

  5. (转)JAVA 十六个常用工具类

    (转)JAVA 十六个常用工具类 一. org.apache.commons.io.IOUtils closeQuietly 关闭一个IO流.socket.或者selector且不抛出异常.通常放在f ...

  6. JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)

    JAVA实现 PDF转换 常用工具类(html转PDF.PDF添加页码.PDF文件下载.PDF添加印章或者水印)可直接使用 package com.bestvike.util; import com. ...

  7. Java(35):Java Base64编码和解码工具类

    Java Base64编码和解码工具类 Base64Util工具类: package com.ciphergateway.utils; import java.io.UnsupportedEncodi ...

  8. JAVA 文件上传下载工具类

    JAVA 文件上传下载工具类 import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org. ...

  9. java常用地图坐标系转换工具类,支持谷歌,腾讯,百度等主流的地理坐标转换

    package com.shen.springboot.redis.util;import java.util.ArrayList; import java.util.HashMap; import ...

最新文章

  1. 数据蒋堂 | 报表工具的SQL植入风险
  2. Long类型传到前端失去精度(2):Long类型不是实体类的某一个字段,Long类型是一个函数的返回值
  3. 几种Linux段错误调试方法
  4. listen()和accept()函数:让套接字进入监听状态并响应客户端请求
  5. 一日一学:返回排序好的列表的索引顺序
  6. python实现Redis订阅发布
  7. jenkins 自动化部署常用插件
  8. MTK 驱动开发(48)---ARM 看门狗机制
  9. delphi 发送网络消息_Actor 消息的可靠交付(Akka Typed)
  10. VS下使用多字符集编码和Unicode字符集编码的总结
  11. 严格约束选股条件 能否找到跑赢市场的好公司?
  12. 喷射计算机故障,电子燃油喷射系统常见故障
  13. c语言中aver是什么意思_average函数_函数Average是什么意思
  14. 怎么让热图显示基因名_如何将 qPCR 数据做成热图
  15. 解密区块链最强心脏 迅雷链共识算法详解
  16. Linux _PM_OPS
  17. 闲鱼怎么发布宝贝引流?推广方法就是不断的在闲鱼上发布转让
  18. 内存池——第一章 几种常用的内存池技术
  19. 浅谈智能音箱的基本工作原理和核心技术?
  20. 转帖:DLL劫持技术详解(lpk.dll)

热门文章

  1. 关于 Excel 2003 vba usedrange属性
  2. java exchange发邮件_Java通过exchange协议发送邮件
  3. [ECCV2018] 端到端的弯曲文本检测与识别
  4. 性能稳定的android手机,3部性能稳定续航能力强的手机,认真玩游戏,拒绝坑队友!...
  5. 云计算,不仅仅是数据的存储计算,更应该是数据的分析、挖掘计算- 电饭锅产业技术路线图发布:明晰发展方向...
  6. IJPay 让支付触手可及-文中有视频
  7. 拥抱微利社会的降临【学习笔记】
  8. Fundebug后端Node.js插件更新至0.2.0,支持监控Express慢请求
  9. 一个叫“胡万进”的软件缺陷〔转贴〕
  10. 我的网络安全学习之路