常用json的框架


1常用的框架 阿里的fastjson,谷歌的gson

javabean序列化json,性能Jackson>fastJson>Gson>Json

測試方法:循環序一百萬次,看誰先完成

jackson  fastjson   gson類各有優缺點,但是優化無非是空間換時間,運行速度很快,但是cpu溫度較高,負載較大;或者空間換時間,運行效率很低,但是性能穩定

 

2jackson的處理和關閉

指定字段不返回:@JsonIgore

指定日期樣式 @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")

空字段不返回 @JsonInclude(Include.NON_NULL)

指定別名:@JsonProperty

上例子:

2.1創建一個高管類Executives:

package com.example.demo.bean;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;

public class Executives {
/**
* 姓名
*/
private String name;
/**
* 性別
* @JsonIgnore不返回字段
*/
@JsonIgnore
private String sex;
/**
* 工作
*/

private String work;
/**
* 住址
*/
private String address;
/**
* 存款
* @JsonProperty("account") 不返回真實的字段給別人,返回別名給別人
*/
@JsonProperty("account")
private int deposit;
/**
* 創建時間
* @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8") 轉換時間格式
*/
@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
private Date createTime;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getWork() {
return work;
}
public void setWork(String work) {
this.work = work;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getDeposit() {
return deposit;
}
public void setDeposit(int deposit) {
this.deposit = deposit;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Executives(String name, String sex, String work, String address, int deposit, Date createTime) {
super();
this.name = name;
this.sex = sex;
this.work = work;
this.address = address;
this.deposit = deposit;
this.createTime = createTime;
}


}

2.2創建一個TestJsonController,用來測試返回的json數據

package com.example.demo.controller;

import java.util.Date;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.bean.Executives;

@RestController
public class TestJsonController {



@GetMapping("/testJson")
public Object testJson() {
return new Executives("李明", "男", "程序員", "湖北省武漢市青山區", 9000, new Date());

}


}

2.3然后run application后,通過postman去請求接口

 

 @JsonIgore 忽略了性別   

@JsonProperty(“account”)對字段存款deposit引用了別名account 

  @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")  引用了正常的時間樣式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM