簡介:介紹常用json框架和注解的使用,自定義返回json結構和格式
1、常用框架 阿里 fastjson,谷歌gson等
JavaBean序列化為Json,性能:Jackson > FastJson > Gson > Json-lib 同個結構
Jackson、FastJson、Gson類庫各有優點,各有自己的專長
空間換時間,時間換空間
2、jackson處理相關自動
指定字段不返回:@JsonIgnore
指定日期格式:@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
空字段不返回:@JsonInclude(Include.NON_NUll)
指定別名:@JsonProperty
實體類代碼如下:
public class rData { @JsonIgnore private String code; @JsonProperty(value = "agenum") private int age; @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8") private Date createDate; @JsonInclude(JsonInclude.Include.NON_NULL) private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = createDate; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public rData(String code, int age) { this.code = code; this.age = age; } public rData(String code, int age, Date createDate, String name) { this.code = code; this.age = age; this.createDate = createDate; this.name = name; } }
測試類代碼:
@RestController public class HttpController { @GetMapping("/testjson") public Object param6(){ return new rData("jackson",1,new Date(),"lion"); } }
結果:
{"createDate":"2018-09-18 09:36:31","name":"lion","agenum":1}
code被忽略了,所以不顯示;age被別名代替"agenum"