踩坑JSONcom.alibaba.fastjson转换json时默认将属性第一个字母转小写
時光问题描述
将实体类对象转为json字符串的时候,会将属性名首字母改为小写
例如此出User队形有两个属性,USER_NAME和USER_AGE,首字母均为大写
将实体类对象转为JSON后首字母全都转换为了小写
解决方法
这是因为阿里巴巴的fastjson框架默认使用了JavaBean规范中的命名约定,将属性名首字母小写,以符合ava编码规
范。因此,当使用fastjson的SONObject.toJSONString方法将一个实体类对象转换为SON字符串时,实体类的属性名
会被自动转换成首字母小写的形式。如果需要在SON字符串中保留属性名的原始命名,可以使用fastjso提供的注解
@SONField来指定属性名
这样转换的属性名称就正常了
相关代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField;
public class User { @JSONField(name = "USER_NAME") private String USER_NAME; @JSONField(name = "USER_AGE") private Integer USER_AGE;
public User() { }
public String getUSER_NAME() { return USER_NAME; }
public void setUSER_NAME(String USER_NAME) { this.USER_NAME = USER_NAME; }
public Integer getUSER_AGE() { return USER_AGE; }
public void setUSER_AGE(Integer USER_AGE) { this.USER_AGE = USER_AGE; }
public static void main(String[] args) { User user = new User(); user.setUSER_NAME("张三"); user.setUSER_AGE(18); System.out.println(JSONObject.toJSONString(user)); } }
|