com-alibaba-fastjson转换json时默认将属性第一个字母转小写

问题描述

将实体类对象转为json字符串的时候,会将属性名首字母改为小写

例如此出User队形有两个属性,USER_NAME和USER_AGE,首字母均为大写

image-20230509174435159

将实体类对象转为JSON后首字母全都转换为了小写

image-20230509174520330

解决方法

这是因为阿里巴巴的fastjson框架默认使用了JavaBean规范中的命名约定,将属性名首字母小写,以符合ava编码规
范。因此,当使用fastjson的SONObject.toJSONString方法将一个实体类对象转换为SON字符串时,实体类的属性名
会被自动转换成首字母小写的形式。如果需要在SON字符串中保留属性名的原始命名,可以使用fastjso提供的注解
@SONField来指定属性名

image-20230509174956741

这样转换的属性名称就正常了

image-20230509175032285

相关代码

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));
    }
}
posted @ 2023-05-12 22:15  時光心向阳  阅读(717)  评论(0编辑  收藏  举报