官方的五分鐘入門文檔:java
http://wiki.fasterxml.com/JacksonInFiveMinutes json
國內某位同仁的翻譯版(算是翻譯版吧)
spa
http://shensy.iteye.com/blog/1717776 翻譯
除了這些簡單的應用外,有時還會遇到一些比較特殊的場景code
pojo的字段名與實際的屬性名不同orm
某些屬性不須要做json轉換xml
字段以指定的順序顯示blog
日期類型按指定的格式轉化
文檔
舉例:字符串
pojo的字段名與實際的屬性名不同
好比如下實體
public class User { private String username; private String nickName; //真實姓名 private String fullName; ..... }
但要求轉化後的json字符串是這樣的:
{"username":"xxx", "nickName":"xxxx", "realName":"xxxx"}
其中真實姓名這個字段在實體中是叫fullNam,但要求轉後顯示:realName
解決方式:
使用Jackson的註解便可:
public class User { private String username; private String nickName; //真實姓名 @JsonProperty("realName") private String fullName; ..... }
2. 某些屬性不須要做json轉換
好比如下實體
public class User { private String username; private String nickName; //真實姓名 private String fullName; ..... }
但要求轉化後的json字符串是這樣的:
{"username":"xxx", "realName":"xxxx"}
其中nickName這個字段要求不要轉換成json
解決方式:
使用Jackson的註解便可:
public class User { private String username; @JsonIgnore private String nickName; //真實姓名 @JsonProperty("realName") private String fullName; ..... }
3.字段以指定的順序顯示
好比如下實體
public class User { private String username; private String nickName; //真實姓名 private String fullName; ..... }
但要求轉化後的json字符串是這樣的:
{"fullName":"xxxx","username":"xxx", "nickName":"xxxx"}
字段顯示的順序爲:fullName,username,nickName
解決方式:
使用Jackson的註解便可:
//調轉順序 @JsonPropertyOrder({ "fullName", "username", "nickName" }) public class User { private String username; @JsonIgnore private String nickName; //真實姓名 @JsonProperty("realName") private String fullName; ..... }
4.日期類型按指定的格式轉化
好比如下實體
public static class DateBean { public Date startDate; public Date endDate; }
但要求轉化後的json字符串是這樣的:
{"startDate":"yyyy-MM-dd HH:mm:ss","endDate":"yyyy-MM-dd HH:mm:ss"}
解決方式:
使用Jackson的註解便可:
public static class DateBean { //按annotation中的日期格式存儲。 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") public Date startDate; //按annotation中的日期格式存儲。 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") public Date endDate; }