最近跟人对接。一个比较扯淡的问题。
对方需要接收的字段都为大写的。而有一部分字段是单单词的,通过fastjson返回数据。则为小写的json
如下:
{
"status": 300,
"desc": "此人正在办理中,请核实!",
"time": "2020-01-17 15:32:29.271",
"data": null
}
但是接口方需要大写的。
{
"STATUS": 300,
"DESC": "此人正在办理中,请核实!",
"TIME": "2020-01-17 15:32:29.271",
"DATA": null
}
于是把实体字段做了调整。还是不行。fastjson自动返回的小写的。
在实体和get方法上做了注解才解决。
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import com.fasterxml.jackson.annotation.JsonProperty;
@XmlRootElement(name = "result")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso({ ArrayList.class, HashMap.class, Object.class })
public class DataResultWD implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@JsonProperty("STATUS")
@XmlElement(name = "STATUS")
private Long status;
@JsonProperty("DESC")
@XmlElement(name = "DESC")
private String desc;
@JsonProperty("TIME")
@XmlElement(name = "TIME")
private Date time;
@JsonProperty("DATA")
@XmlElement(name = "DATA")
private Object data;
public DataResultWD() {
this.time = DateUtil.getSystemTimestamp();
}
public DataResultWD(Long status, String desc, Object data) {
super();
this.status = status;
this.desc = desc;
this.time = DateUtil.getSystemTimestamp();
this.data = data;
}
@JsonProperty("STATUS")
public Long getStatus() {
return status;
}
public void setStatus(Long status) {
this.status = status;
}
@JsonProperty("DESC")
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
@JsonProperty("TIME")
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
@JsonProperty("DATA")
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}