0%

JsonUtils

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.shebao.framework.util.base.CommonConstants;

import java.lang.reflect.Type;
import java.util.Collections;
import java.util.List;

public class JsonUtils {

/**
* 处理单条查询响应结果
* @param result 查询结果字符串
* @param tClass 结果对象的class对象
* @return 响应类
*/
public static <T> T handleSingleResult(String result, Class<T> tClass) {
if (StringUtil.isBlank(result)) {
return null;
}
JSONObject jsonObject = JSON.parseObject(result);
if (CommonConstants.RETURN_CODE_SUCCESS != jsonObject.getInteger(CommonConstants.RET)) {
return null;
}
return jsonObject.getObject("data", tClass);
}


/**
* 处理list查询响应结果
* @param result 查询结果字符串
* @param tClass 结果对象的class对象
* @return 响应类
*/
public static <T> List<T> handleListResult(String result, Class<T> tClass) {
if (StringUtil.isBlank(result)) {
return Collections.emptyList();
}
JSONObject jsonObject = JSON.parseObject(result);
if (CommonConstants.RETURN_CODE_SUCCESS != jsonObject.getInteger(CommonConstants.RET)) {
return Collections.emptyList();
}
return JSON.parseArray(jsonObject.getString("data"), tClass);
}


/**
* 处理RPC返回List结果
* @param result 待处理json字符串
* @param tClass 待转型的目标类型
* @param <T>
* @return
*/
public static <T> ResultData<List<T>> handleRpcResultForList(String result, Class<T> tClass) {
if (StringUtil.isBlank(result)) {
return ResultData.error("Rpc请求失败",Collections.emptyList());
}
JSONObject jsonObject = JSON.parseObject(result);
if (CommonConstants.RETURN_CODE_SUCCESS != jsonObject.getInteger(CommonConstants.RET)) {
return ResultData.error("Rpc返回错误:"+jsonObject.getString(CommonConstants.MSG),Collections.emptyList());
}
List<T> data = JSON.parseArray(jsonObject.getString("data"), tClass);
return ResultData.success(data);
}


/**
* 处理RPC返回单个结果
* @param result 待处理json字符串
* @param tClass 待转型的目标类型
* @param <T>
* @return
*/
public static <T> ResultData<T> handleRpcResultForOne(String result, Class<T> tClass) {
if (StringUtil.isBlank(result)) {
return ResultData.error("Rpc请求失败");
}
JSONObject jsonObject = JSON.parseObject(result);
if (CommonConstants.RETURN_CODE_SUCCESS != jsonObject.getInteger(CommonConstants.RET)) {
return ResultData.error("Rpc返回错误:"+jsonObject.getString(CommonConstants.MSG));
}
T data = jsonObject.getObject("data", tClass);
return ResultData.success(data);
}


/**
* 处理RPC返回分页结果
* @param result
* @param tClass
* @param <T>
* @return
*/
public static <T> ResultData<List<T>> handleRpcResultForPageList(String result, Class<T> tClass) {
if (StringUtil.isBlank(result)) {
return ResultData.error("Rpc请求失败",Collections.emptyList());
}
JSONObject jsonObject = JSON.parseObject(result);
if (CommonConstants.RETURN_CODE_SUCCESS != jsonObject.getInteger(CommonConstants.RET)) {
return ResultData.error("Rpc返回错误:"+jsonObject.getString(CommonConstants.MSG),Collections.emptyList());
}
JSONObject pageDataObj = JSON.parseObject(jsonObject.getString("data"));
List<T> data = JSON.parseArray(pageDataObj.getString("list"), tClass);
return ResultData.success(data);
}






public static String toJson(Object obj){
return JSONObject.toJSONString(obj);
}

public static String toJsonWriteMapNullValue(Object obj){
return JSONObject.toJSONString(obj, SerializerFeature.WriteMapNullValue);
}

/**
* 将对象解析成JSON对象
*
* @param obj
* @return
*/
public static JSONObject toJSONObject(Object obj) {
if (obj instanceof String) {
return JSON.parseObject(obj.toString());
}
return JSON.parseObject(JSON.toJSONString(obj));
}

/**
* 通过设置type将字符串解析成对象
*
* @param text
* @param type
* @param <T>
* @return
*/
public static <T> T parseObject(String text, Type type) {
return JSON.parseObject(text, type);
}

/**
* 将字符串解析成对象
*
* @param text
* @param clazz
* @param <T>
* @return
*/
public static <T> T parseObject(String text, Class<T> clazz) {
return JSON.parseObject(text, clazz);
}


}