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

青旅半醒 2023-10-09 14:34 108阅读 0赞

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

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

1.相关查询地址

github地址:github地址

文档地址:文档地址

2.fastjson跟下划线与驼峰如何转换

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

方法1:

采用@JSONField注解

对象类UserVO

  1. public class UserVO {
  2. @JSONField(name = "user_name")
  3. String userName;
  4. @JSONField(name = "password")
  5. String password;
  6. @JSONField(name = "create_time")
  7. String createTime;
  8. public String getUserName() {
  9. return userName;
  10. }
  11. public void setUserName(String userName) {
  12. this.userName = userName;
  13. }
  14. public String getPassword() {
  15. return password;
  16. }
  17. public void setPassword(String password) {
  18. this.password = password;
  19. }
  20. public String getCreateTime() {
  21. return createTime;
  22. }
  23. public void setCreateTime(String createTime) {
  24. this.createTime = createTime;
  25. }
  26. @Override
  27. public String toString() {
  28. return "UserVO{" +
  29. "userName='" + userName + '\'' +
  30. ", password='" + password + '\'' +
  31. ", createTime='" + createTime + '\'' +
  32. '}';
  33. }
  34. }

转换

  1. JSONObject jsonObject = new JSONObject();
  2. jsonObject.put("user_name","123");
  3. jsonObject.put("password","qwert");
  4. jsonObject.put("create_time","2022-01-01 11:11:11");
  5. UserVO userVO = JSONObject.toJavaObject(jsonObject, UserVO.class);
  6. System.out.println(userVO);

下面写法也可以

  1. JSONObject jsonObject = new JSONObject();
  2. jsonObject.put("user_name","123");
  3. jsonObject.put("password","qwert");
  4. jsonObject.put("create_time","2022-01-01 11:11:11");
  5. UserVO userVO = JSON.parseObject(jsonObject.toJSONString(), UserVO.class);
  6. System.out.println(userVO);

方法2:

采用反序列化设置

1.去掉对象上面的注解

2.用ParserConfig反序列化实现

  1. JSONObject jsonObject = new JSONObject();
  2. jsonObject.put("user_name","123");
  3. jsonObject.put("password","qwert");
  4. jsonObject.put("create_time","2022-01-01 11:11:11");
  5. ParserConfig parserConfig = new ParserConfig();
  6. parserConfig.propertyNamingStrategy = PropertyNamingStrategy.SnakeCase;
  7. UserVO userVO = JSON.parseObject(jsonObject.toJSONString(), UserVO.class, parserConfig);
  8. System.out.println(userVO);

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

发表评论

表情:
评论列表 (有 0 条评论,108人围观)

还没有评论,来说两句吧...

相关阅读