com-alibaba-fastjson转换json时默认将属性第一个字母转小写
问题描述
将实体类对象转为json字符串的时候,会将属性名首字母改为小写
例如此出User队形有两个属性,USER_NAME和USER_AGE,首字母均为大写
将实体类对象转为JSON后首字母全都转换为了小写
解决方法
这是因为阿里巴巴的fastjson框架默认使用了JavaBean规范中的命名约定,将属性名首字母小写,以符合ava编码规
范。因此,当使用fastjson的SONObject.toJSONString方法将一个实体类对象转换为SON字符串时,实体类的属性名
会被自动转换成首字母小写的形式。如果需要在SON字符串中保留属性名的原始命名,可以使用fastjso提供的注解
@SONField来指定属性名
这样转换的属性名称就正常了
相关代码
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));
}
}