yubo
2026-03-27 0960e84f87af09990397cb38801bdfd40a2c2d36
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
package cc.mrbird.febs.server.hr.po;
 
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
 
import java.util.List;
 
/**
 * @Description: 自定义响应数据结构 
 */
public class AvailableResult {
 
    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();
 
    // 响应业务状态
    private Integer status;
 
    // 响应消息
    private String msg;
 
    // 响应中的数据
    private Object data;
 
    private String ok; // 不使用
 
    public static AvailableResult build(Integer status, String msg, Object data) {
        return new AvailableResult(status, msg, data);
    }
 
    public static AvailableResult ok(Object data) {
        return new AvailableResult(data);
    }
 
    public static AvailableResult ok() {
        return new AvailableResult(null);
    }
 
    public static AvailableResult errorMsg(String msg) {
        return new AvailableResult(500, msg, null);
    }
 
    public static AvailableResult errorMap(Object data) {
        return new AvailableResult(501, "error", data);
    }
 
    public static AvailableResult errorTokenMsg(String msg) {
        return new AvailableResult(502, msg, null);
    }
 
    public static AvailableResult errorException(String msg) {
        return new AvailableResult(555, msg, null);
    }
 
    public AvailableResult() {
 
    }
 
    // public static LeeJSONResult build(Integer status, String msg) {
    // return new LeeJSONResult(status, msg, null);
    // }
 
    public AvailableResult(Integer status, String msg, Object data) {
        this.status = status;
        this.msg = msg;
        this.data = data;
    }
 
    public AvailableResult(Object data) {
        this.status = 200;
        this.msg = "OK";
        this.data = data;
    }
 
    public Boolean isOK() {
        return this.status == 200;
    }
 
    public Integer getStatus() {
        return status;
    }
 
    public void setStatus(Integer status) {
        this.status = status;
    }
 
    public String getMsg() {
        return msg;
    }
 
    public void setMsg(String msg) {
        this.msg = msg;
    }
 
    public Object getData() {
        return data;
    }
 
    public void setData(Object data) {
        this.data = data;
    }
 
    /**
     * 
     * @Description: 将json结果集转化为LeeJSONResult对象 需要转换的对象是一个类
     * @param jsonData
     * @param clazz
     * @return
     * 
     * 
     * @date 2016年4月22日 下午8:34:58
     */
    public static AvailableResult formatToPojo(String jsonData, Class<?> clazz) {
        try {
            if (clazz == null) {
                return MAPPER.readValue(jsonData, AvailableResult.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对象的转化
     * @param json
     * @return
     * 
     * 
     * @date 2016年4月22日 下午8:35:21
     */
    public static AvailableResult format(String json) {
        try {
            return MAPPER.readValue(json, AvailableResult.class);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
 
    /**
     * 
     * @Description: Object是集合转化 需要转换的对象是一个list
     * @param jsonData
     * @param clazz
     * @return
     * 
     * 
     * @date 2016年4月22日 下午8:35:31
     */
    public static AvailableResult 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;
        }
    }
 
    public String getOk() {
        return ok;
    }
 
    public void setOk(String ok) {
        this.ok = ok;
    }
 
}