Fastjson跟javabean之间相互转换大全-下划线与驼峰格式转换

时间:2025-02-16 07:30:54

经常碰到新同事,咨询我关于fastjson转对象的问题,尤其是遇到json里面字段带有下换线,转对象的时候,老是赋值不上,关于这些问题,我专门写了这个,主要是想告诉大家,遇到问题如何快速解决

一般像这个三方件都是有官网或者文档说明,如果遇到问题的话,首先可以去查找对应的官网或者文档是否说明,下面进入到正题:

1.相关查询地址

github地址:github地址

文档地址:文档地址 

跟下划线与驼峰如何转换

下划线与驼峰转换方式,主要有两个方法:

方法1:

采用@JSONField注解

对象类UserVO

public class UserVO {

    @JSONField(name = "user_name")
    String userName;

    @JSONField(name = "password")
    String password;

    @JSONField(name = "create_time")
    String createTime;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
         = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
         = password;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
         = createTime;
    }

    @Override
    public String toString() {
        return "UserVO{" +
                "userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                ", createTime='" + createTime + '\'' +
                '}';
    }
}

转换

JSONObject jsonObject = new JSONObject();
        ("user_name","123");
        ("password","qwert");
        ("create_time","2022-01-01 11:11:11");
        UserVO userVO = (jsonObject, );
        (userVO);

下面写法也可以

JSONObject jsonObject = new JSONObject();
        ("user_name","123");
        ("password","qwert");
        ("create_time","2022-01-01 11:11:11");
        UserVO userVO = ((), );
        (userVO);

方法2:

采用反序列化设置

1.去掉对象上面的注解

2.用ParserConfig反序列化实现

JSONObject jsonObject = new JSONObject();
        ("user_name","123");
        ("password","qwert");
        ("create_time","2022-01-01 11:11:11");
        ParserConfig parserConfig = new ParserConfig();
         = ;
        UserVO userVO = ((), , parserConfig);
        (userVO);

如果是对象转json的还,采用序列化SerializeConfig