com.alibaba.fastjson的@JSONField标签
使⽤场景:字段和⽅法
1、字段:根据@JSONField(name=“XXX”) 中的name 对string转换为类时name中的描述就是转换后的字段名称
2、⽅法:在set⽅法前和在get⽅法前
当JSON.parseObject(str,class)⽅法被调⽤时,set⽅法被调⽤,⽅法上⾯的@JSONField(name="XXX")中的XXX属性,将json中的XXXkey被赋值到set⽅法描述的属性中。
当JSONString(dto)⽅法被调⽤时,get⽅法被调⽤,⽅法上⾯的@JSONField(name="XXX")中的XXX属性,就是得到的jsonString中的属性的key。
例⼦如下:
package json.dto;
import com.alibaba.fastjson.annotation.JSONField;
import java.util.Date;
/**
* @Auther: liyongli
* @Date: 2018/8/15 14:02
* @Description:
*/
public class DepositDTO {
@JSONField(ordinal = 1)
private String id;
@JSONField(ordinal = 2)
private Integer depositAmount;
@JSONField(ordinal = 3)
private Date createTime;
@JSONField(ordinal = 4,name = "delete_flag")
private String deleteFlag;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@JSONField(name = "amount")
public Integer getDepositAmount() {
System.out.println("get ⽅法被调⽤");
return depositAmount;
}
@JSONField(name = "depositamt")
public void setDepositAmount(Integer depositAmount) {
System.out.println("set ⽅法被调⽤");
this.depositAmount = depositAmount;
}
@JSONField(format = "YYYY-MM-dd HH:mm:ss")
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
}
public String getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(String deleteFlag) {
this.deleteFlag = deleteFlag;
}
@Override
public String toString() {
String();
}
}
package json;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import json.dto.DepositDTO;
fastjson常用方法import java.util.Date;
/**
* @Auther: liyongli
* @Date: 2018/8/15 14:05
* @Description:
*/
public class JsonTest {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",1);
jsonObject.put("depositamt", 100);
jsonObject.put("deleteflag", 0);
jsonObject.put("name", "liyongli");
jsonObject.put("create_time", new Date());
System.out.println(jsonObject);//同String(),JSONString()
System.out.println("调⽤JSON.parseObject⽅法时:");
DepositDTO depositDTO = JSON.String(),DepositDTO.class);//set⽅法被调⽤,⽤string中的key和@JSONFIELD中的那么对应 System.out.println(depositDTO);
//
// DepositDTO depositDTO1 = JSONObject.JSONString(), DepositDTO.class);
// System.out.println(depositDTO1);
System.out.println("调⽤JSONString⽅法时:");
System.out.JSONString(depositDTO));//get⽅法被调⽤,将被转换成JSONField标签中的那么值
}
}
运⾏结果:
{"deleteflag":0,"create_time":1534317037530,"depositamt":100,"name":"liyongli","id":1}调⽤JSON.parseObject⽅法时:
set ⽅法被调⽤
json.dto.DepositDTO@77afea7d
调⽤JSONString⽅法时:
get ⽅法被调⽤
{"amount":100,"id":"1","createTime":"2018-08-15 15:10:37","delete_flag":"0"}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论