liukangdong
2024-05-21 4658e9353f7aa76a833d36ed988d77bf362ad0ea
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
package cn.emay.sdk.util.json;
 
import java.util.HashMap;
import java.util.Map;
 
import cn.emay.sdk.util.json.gson.Gson;
import cn.emay.sdk.util.json.gson.GsonBuilder;
import cn.emay.sdk.util.json.gson.reflect.TypeToken;
 
/**
 * json util
 * 
 * @author 东旭
 *
 */
public class JsonHelper {
 
    private static Map<String, Gson> gsons = new HashMap<String, Gson>();
 
    private static String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
 
    static {
        gsons.put(DEFAULT_DATE_PATTERN, createGson(DEFAULT_DATE_PATTERN));
    }
 
    private static Gson createGson(String datePattern) {
        return new GsonBuilder().setDateFormat(datePattern).disableHtmlEscaping().serializeNulls().create();
    }
 
    public static Gson getGson() {
        return gsons.get(DEFAULT_DATE_PATTERN);
    }
 
    public static Gson getGson(String datePattern) {
        Gson gson = gsons.get(datePattern);
        if (gson == null) {
            gson = createGson(datePattern);
            gsons.put(datePattern, gson);
        }
        return gson;
    }
 
    public static GsonBuilder newGsonBuilder() {
        return new GsonBuilder();
    }
 
    /**
     * 将对象转换为json串
     * 
     * @param obj
     * @return
     */
    public static String toJsonString(Object obj) {
        if (obj == null) {
            return null;
        }
        return getGson().toJson(obj);
    }
 
    /**
     * 将对象转换为json串,自定义日期转换规则
     * 
     * @param obj
     * @param datePattern
     * @return
     */
    public static String toJsonString(Object obj, String datePattern) {
        if (obj == null) {
            return null;
        }
        return getGson(datePattern).toJson(obj);
    }
 
    /**
     * 将json串转换为对象
     * 
     * @param clazz
     * @param jsonString
     * @return
     */
    public static <T> T fromJson(Class<T> clazz, String jsonString) {
        if (jsonString == null) {
            return null;
        }
        return getGson().fromJson(jsonString, clazz);
    }
 
    /**
     * 将json串转换为对象
     * 
     * @Type type
     * @param jsonString
     * @return
     */
    public static <T> T fromJson(TypeToken<T> token, String jsonString) {
        if (jsonString == null) {
            return null;
        }
        return getGson().fromJson(jsonString, token.getType());
    }
 
    /**
     * 将json串转换为对象
     * 
     * @Type type
     * @param jsonString
     * @return
     */
    public static <T> T fromJson(TypeToken<T> token, String jsonString, String datePattern) {
        if (jsonString == null) {
            return null;
        }
        return getGson(datePattern).fromJson(jsonString, token.getType());
    }
 
    /**
     * 将json串转换为对象
     * 
     * @param clazz
     * @param jsonString
     * @return
     */
    public static <T> T fromJson(Class<T> clazz, String jsonString, String datePattern) {
        if (jsonString == null) {
            return null;
        }
        return getGson(datePattern).fromJson(jsonString, clazz);
    }
 
}