jackson

json2javabean:http://www.atool.org/json2javabean.php jsonformat:http://www.bejson.com/

dependency

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.10</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.10</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.8.10</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.8.10</version>
</dependency>

序列化格式化輸出

使用writerWithDefaultPrettyPrinter

private static ObjectMapper objectMapper = new ObjectMapper();

public static String serialize(Object object, boolean withPretty) {
        Writer write = new StringWriter();
        try {
            if (withPretty) {
                objectMapper.writerWithDefaultPrettyPrinter().writeValue(write, object);
            } else {
                objectMapper.writeValue(write, object);
            }
        } catch (Exception e) {
            log.error(e.getMessage(), SigmaConstant.WINGON.concat(e.getStackTrace().toString()));
        }
        return write.toString();
    }

反序列化

public static <T> T deserialize(String json, TypeReference<T> typeRef) {
        Object object = null;
        try {
            return objectMapper.readValue(json, typeRef);
        } catch (Exception e) {
            log.error(e.getMessage(), SigmaConstant.WINGON.concat(e.getStackTrace().toString()));
        }
        return null;
    }

忽略未知屬性

objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

設置日誌格式

@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ", locale = "zh", timezone = "GMT+8")
private Date transactionTime;
  • pattern 指定转化的格式,SSSZ(S指的是微秒,Z指时区)。此处的pattern和java.text.SimpleDateFormat中的Time Patterns一致 pattern示例:
    • "yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
    • "EEE, MMM d, ''yy" Wed, Jul 4, '01
    • "h:mm a" 12:08 PM
    • "hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
    • "K:mm a, z" 0:08 PM, PDT
    • "yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
    • "EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
    • "yyMMddHHmmssZ" 010704120856-0700
    • "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700
    • "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" 2001-07-04T12:08:56.235-07:00
    • "YYYY-'W'ww-u" 2001-W27-3
  • locale,表示地區
  • timezone,表示時區

Ref: http://www.sojson.com/blog/245.html http://www.jianshu.com/p/0ab28624c126

results matching ""

    No results matching ""