java 返回指定类型_使用Java对返回的结果,封装成指定JSON格式的数据类型

1 package com.bie.demo.utils;2

3 import com.fasterxml.jackson.databind.JsonNode;4 import com.fasterxml.jackson.databind.ObjectMapper;5

6 import java.io.Serializable;7 import java.util.List;8

9 /**10 * @ProjectName:11 * @Package:12 * @ClassName:13 * @Author:14 * @Description: ${description}15 * @Date: 2020/2/28 10:4016 * @Version: 1.017 */

18 public classNationalPolicyResult implements Serializable {19

20 /**21 *22 */

23 private static final long serialVersionUID = 1L;24

25 //定义jackson对象

26 private static final ObjectMapper MAPPER = newObjectMapper();27

28 //返回标记,成功标记为0,失败为1

29 privateInteger code;30

31 //返回消息

32 privateString msg;33

34 //返回中的数据

35 privateObject data;36

37 /**38 * 1、成功返回调用的方法39 *40 * @param data41 * @return42 */

43 public staticNationalPolicyResult success(Object data) {44 return newNationalPolicyResult(data);45 }46

47 /**48 * 2、成功返回调用的方法,重载方法49 *50 * @return51 */

52 public staticNationalPolicyResult success() {53 return new NationalPolicyResult(null);54 }55

56

57 /**58 * 3、传入封装的数据,返回标记和返回信息进行默认59 *60 * @param data61 */

62 publicNationalPolicyResult(Object data) {63 this.code = 0;64 this.msg = "success";65 this.data =data;66 }67

68 /**69 * 4、无参的构造方法70 */

71 publicNationalPolicyResult() {72

73 }74

75 /**76 * 5、自己构建一个方法,调用构造方法,返回自己封装的状态,返回信息,和封装的数据信息77 *78 * @param code79 * @param msg80 * @param data81 * @return82 */

83 public staticNationalPolicyResult build(Integer code, String msg, Object data) {84 return newNationalPolicyResult(code, msg, data);85 }86

87 /**88 * 6、自己构建一个方法,重载,调用构造方法,默认封装的数据信息为null89 *90 * @param code91 * @param msg92 * @return93 */

94 public staticNationalPolicyResult build(Integer code, String msg) {95 return new NationalPolicyResult(code, msg, null);96 }97

98 /**99 * 7、可以传入封装的数据,和封装的信息,失败或者成功100 *101 * @param data102 * @param msg103 */

104 publicNationalPolicyResult(Object data, String msg) {105 this.code = 0;106 this.msg =msg;107 this.data =data;108 }109

110

111 /**112 * 8、含参的构造方法113 *114 * @param code115 * @param msg116 * @param data117 */

118 publicNationalPolicyResult(Integer code, String msg, Object data) {119 this.code =code;120 this.msg =msg;121 this.data =data;122 }123

124 publicInteger getCode() {125 returncode;126 }127

128 public voidsetCode(Integer code) {129 this.code =code;130 }131

132 publicString getMsg() {133 returnmsg;134 }135

136 public voidsetMsg(String msg) {137 this.msg =msg;138 }139

140 publicObject getData() {141 returndata;142 }143

144 public voidsetData(Object data) {145 this.data =data;146 }147

148

149 /**150 * 将json结果集转化为NationalPolicyResult对象151 *152 * @param jsonData json数据153 * @param clazz NationalPolicyResult中的object类型154 * @return155 */

156 public static NationalPolicyResult formatToPojo(String jsonData, Class>clazz) {157 try{158 if (clazz == null) {159 return MAPPER.readValue(jsonData, NationalPolicyResult.class);160 }161 JsonNode jsonNode =MAPPER.readTree(jsonData);162 JsonNode data = jsonNode.get("data");163 Object obj = null;164 if (clazz != null) {165 if(data.isObject()) {166 obj =MAPPER.readValue(data.traverse(), clazz);167 } else if(data.isTextual()) {168 obj =MAPPER.readValue(data.asText(), clazz);169 }170 }171 return build(jsonNode.get("code").intValue(), jsonNode.get("msg").asText(), obj);172 } catch(Exception e) {173 return null;174 }175 }176

177 /**178 * 没有object对象的转化179 *180 * @param json181 * @return182 */

183 public staticNationalPolicyResult format(String json) {184 try{185 return MAPPER.readValue(json, NationalPolicyResult.class);186 } catch(Exception e) {187 e.printStackTrace();188 }189 return null;190 }191

192 /**193 * Object是集合转化194 *195 * @param jsonData json数据196 * @param clazz 集合中的类型197 * @return198 */

199 public static NationalPolicyResult formatToList(String jsonData, Class>clazz) {200 try{201 JsonNode jsonNode =MAPPER.readTree(jsonData);202 JsonNode data = jsonNode.get("data");203 Object obj = null;204 if (data.isArray() && data.size() > 0) {205 obj =MAPPER.readValue(data.traverse(),206 MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));207 }208 return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);209 } catch(Exception e) {210 return null;211 }212 }213

214 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值