使用fastjson时,对象转json遇到的首字母大小写问题
在使用fastjson进行数据类型转换时发现,pojo类里面的属性首字母大写,在转成json之后,变成了小写。导致数据存储一直有问题。
pom.xml
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.28</version> </dependency>
解决方法:
在pojo类的属性get方法上加上你需要的key。
package com.kafka.jiadu; import java.io.Serializable; import com.alibaba.fastjson.annotation.JSONField; /*** * 人脸数据 * @author admin * */ public class FaceObject implements Serializable{ /** * */ private static final long serialVersionUID = -8818119657729122894L; @JSONField(name="SERVICE_CODE") private String SERVICE_CODE;//场所编码 @JSONField(name="DEVICE_NUM") private String DEVICE_NUM;//设备编码 @JSONField(name="DEVICE_ID") private String DEVICE_ID;//设备ID(第三方设备内部ID) @JSONField(name="FACEID") private String FACEID;//人脸ID @JSONField(name= "IMG_PATH") private String IMG_PATH;//相对路径\照片文件名,相对路径格式:RLSJ/yyyyMMdd/HH/mm,其中RLSJ为数据类型 @JSONField(name= "IMG_FORMAT") private int IMG_FORMAT;//图片格式(1:jpg,2:png,3:gif,4:bmp,9:其它) @JSONField(name= "PHOTO_TYPE") private int PHOTO_TYPE;//照片类型,1:人脸照,2:背景照99:其它 @JSONField( name="FACE_IMGSIZE") private int FACE_IMGSIZE;//照片文件大小,单位K @JSONField(name= "FACE_FILEMD5") private String FACE_FILEMD5;//照片文件的MD5 @JSONField(name= "CERTIFICATE_TYPE") private String CERTIFICATE_TYPE;//证件类型 @JSONField(name= "CERTIFICATE_CODE") private String CERTIFICATE_CODE;//证件号码 @JSONField(name= "XPOINT") private String XPOINT;//设备经度 @JSONField(name= "YPOINT") private String YPOINT;//设备纬度 @JSONField(name= "IMG_TIME") private long IMG_TIME;//图片采集时间,北京时间1970年1月1日08:0:0开始到结束时间的绝对秒数 public String getSERVICE_CODE() { return SERVICE_CODE; } public void setSERVICE_CODE(String SERVICE_CODE) { this.SERVICE_CODE = SERVICE_CODE; } public String getDEVICE_NUM() { return DEVICE_NUM; } public void setDEVICE_NUM(String DEVICE_NUM) { this.DEVICE_NUM = DEVICE_NUM; } public String getDEVICE_ID() { return DEVICE_ID; } public void setDEVICE_ID(String DEVICE_ID) { this.DEVICE_ID = DEVICE_ID; } public String getFACEID() { return FACEID; } public void setFACEID(String FACEID) { this.FACEID = FACEID; } public String getIMG_PATH() { return IMG_PATH; } public void setIMG_PATH(String IMG_PATH) { this.IMG_PATH = IMG_PATH; } public int getIMG_FORMAT() { return IMG_FORMAT; } public void setIMG_FORMAT(int IMG_FORMAT) { this.IMG_FORMAT = IMG_FORMAT; } public int getPHOTO_TYPE() { return PHOTO_TYPE; } public void setPHOTO_TYPE(int PHOTO_TYPE) { this.PHOTO_TYPE = PHOTO_TYPE; } public int getFACE_IMGSIZE() { return FACE_IMGSIZE; } public void setFACE_IMGSIZE(int FACE_IMGSIZE) { this.FACE_IMGSIZE = FACE_IMGSIZE; } public String getFACE_FILEMD5() { return FACE_FILEMD5; } public void setFACE_FILEMD5(String FACE_FILEMD5) { this.FACE_FILEMD5 = FACE_FILEMD5; } public String getCERTIFICATE_TYPE() { return CERTIFICATE_TYPE; } public void setCERTIFICATE_TYPE(String CERTIFICATE_TYPE) { this.CERTIFICATE_TYPE = CERTIFICATE_TYPE; } public String getCERTIFICATE_CODE() { return CERTIFICATE_CODE; } public void setCERTIFICATE_CODE(String CERTIFICATE_CODE) { this.CERTIFICATE_CODE = CERTIFICATE_CODE; } public String getXPOINT() { return XPOINT; } public void setXPOINT(String XPOINT) { this.XPOINT = XPOINT; } public String getYPOINT() { return YPOINT; } public void setYPOINT(String YPOINT) { this.YPOINT = YPOINT; } public long getIMG_TIME() { return IMG_TIME; } public void setIMG_TIME(long IMG_TIME) { this.IMG_TIME = IMG_TIME; } }
这样转换的json,对应的key就改变为你注解对应的属性名。
{"CERTIFICATE_CODE":"","CERTIFICATE_TYPE":"","DEVICE_ID":"6d16e951c5b84b5cb4bacd1c3676a2fc","DEVICE_NUM":"","FACEID":"99fe9b2e2bce4febbc86649c2be1cf26","FACE_FILEMD5":"d1231f73c90eece06a85c5d3ae3544b5","FACE_IMGSIZE":356,"IMG_FORMAT":2,"IMG_PATH":"RLSJ/20181029/16/10/a41acd6028cd5c13f620e7e53ae96e16_13582.png","IMG_TIME":1543478764546,"PHOTO_TYPE":1,"SERVICE_CODE":"","XPOINT":"","YPOINT":""}
好记性不如烂笔头