经常碰到新同事,咨询我关于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