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
| import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List;
public class JSON { private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); public static final String DATE_TIME_FORMAT_01 = "yyyy-MM-dd HH:mm:ss"; public static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat(DATE_TIME_FORMAT_01); static { OBJECT_MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); OBJECT_MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL); SimpleModule simpleModule = new SimpleModule(); simpleModule.addSerializer(Long.class, ToStringSerializer.instance); simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); simpleModule.addSerializer(Double.class, ToStringSerializer.instance); simpleModule.addSerializer(Double.TYPE, ToStringSerializer.instance); simpleModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DATE_TIME_FORMAT_01))); simpleModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DATE_TIME_FORMAT_01))); OBJECT_MAPPER.registerModule(simpleModule); } private JSON() { }
public static <T> T jsonFileParseObject(String filePath, Class<T> clazz) { try { return OBJECT_MAPPER.readValue(new File(filePath), clazz); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } }
public static String toJSONString(Object object) { try { return OBJECT_MAPPER.writeValueAsString(object); } catch (JsonProcessingException e) { throw new RuntimeException(e); } }
public static <T> T parseObject(String text, Class<T> clazz) { try { return OBJECT_MAPPER.readValue(text, clazz); } catch (JsonProcessingException e) { throw new RuntimeException(e); } }
public static <T> List<T> parseArray(String text) { TypeReference<ArrayList<T>> typeReference = new TypeReference<ArrayList<T>>() {}; try { return OBJECT_MAPPER.readValue(text, typeReference); } catch (JsonProcessingException e) { throw new RuntimeException(e); } }
public static <T> LinkedHashMap<String, T> parseMap(String text) { TypeReference<LinkedHashMap<String, T>> typeReference = new TypeReference<LinkedHashMap<String, T>>() {}; try { return OBJECT_MAPPER.readValue(text, typeReference); } catch (JsonProcessingException e) { throw new RuntimeException(e); } } }
|