MCPcopy Create free account
hub / github.com/SeanDragon/protools / ToolJson

Class ToolJson

common/src/main/java/pro/tools/data/text/ToolJson.java:33–364  ·  view source on GitHub ↗

辅助类 @author SeanDragon

Source from the content-addressed store, hash-verified

31 * @author SeanDragon
32 */
33public final class ToolJson {
34
35 private static Gson gson;
36 private static GsonBuilder gsonBuilder;
37 private static Gson simpleGson = buildSimpleGsonBuilder().create();
38
39 static {
40 gsonBuilder = new GsonBuilder()
41 .setLenient()// json宽松
42 .setPrettyPrinting()//变得更好看
43 .enableComplexMapKeySerialization()//支持Map的key为复杂对象的形式
44 .setDateFormat("yyyy-MM-dd HH:mm:ss:SSS")//时间转化为特定格式
45 .disableHtmlEscaping() //默认是GSON把HTML 转义的
46 ;
47
48 gsonBuilder.registerTypeAdapter(TypeBuilder.newInstance(TreeMap.class)
49 .addTypeParam(String.class)
50 .addTypeParam(Object.class).build()
51 , new TreeMapTypeAdapter())
52 .registerTypeAdapter(LocalDate.class, new LocalDateTypeAdapter())
53 .registerTypeAdapter(LocalDateTime.class, new LocalDateTimeTypeAdapter())
54 .registerTypeAdapter(DatePlus.class, new DatePlusTypeAdapter())
55 .registerTypeAdapter(BigDecimal.class, new BigDecimalTypeAdapter())
56 .registerTypeAdapter(Decimal.class, new DecimalTypeAdapter())
57 ;
58
59
60 gson = gsonBuilder.create();
61 }
62
63 public static GsonBuilder buildSimpleGsonBuilder() {
64 GsonBuilder gsonBuilder = new GsonBuilder()
65 //支持Map的key为复杂对象的形式
66 .enableComplexMapKeySerialization();
67
68 gsonBuilder.registerTypeAdapter(TypeBuilder.newInstance(TreeMap.class)
69 .addTypeParam(String.class)
70 .addTypeParam(Object.class).build()
71 , new TreeMapTypeAdapter())
72 .registerTypeAdapter(LocalDate.class, new LocalDateTypeAdapter())
73 .registerTypeAdapter(LocalDateTime.class, new LocalDateTimeTypeAdapter())
74 .registerTypeAdapter(DatePlus.class, new DatePlusTypeAdapter())
75 .registerTypeAdapter(BigDecimal.class, new BigDecimalTypeAdapter())
76 .registerTypeAdapter(Decimal.class, new DecimalTypeAdapter())
77 ;
78
79 return gsonBuilder;
80 }
81
82 /**
83 * 将Map进行JSON编码
84 *
85 * @param map
86 *
87 * @return
88 */
89 public static String mapToJson(Map map) {
90 if (map == null) {

Callers

nothing calls this directly

Calls 4

newInstanceMethod · 0.95
addTypeParamMethod · 0.80
buildMethod · 0.45

Tested by

no test coverage detected