首页 > Java > 正文

使用 Jackson 自动将 POJO 转换为 JSON

王林
发布: 2024-02-09 12:24:19
转载
699人浏览过

在现代的web开发中,前后端数据交互是一个非常重要的环节。而在java开发中,将pojo对象转换为json格式的数据是一项常见的需求。为了简化开发过程,jackson成为了一种常用的解决方案。jackson是一个功能强大的java库,它提供了自动将pojo对象转换为json格式的功能。本文将介绍如何使用jackson来实现这一目标。让我们一起来看看php小编鱼仔为您准备的详细指南吧!

问题内容

我希望能够做到这一点:

system.out.printf("my obj: %s\n", myobject);
登录后复制

并让它生成 json。到目前为止,我最好的解决方案是这样做:

@Override
public String toString() {
    ObjectMapper mapper = new ObjectMapper();
    String retVal = null;
    try {
        retVal = mapper.writeValueAsString(this);
    }
    catch (JsonProcessingException ignored) {
    }
    return retVal;
}
登录后复制

这确实有效,但是在我的每一个 pojo 上都这样做很烦人。是否有我可以使用的注释,或者其他一些方法来自动化此操作。我正在使用 jackson 和 project lombok。

我尝试仅在基类中实现它,但它不会用于子类。如果我在整个链条中实现它,它确实有效。

Find JSON Path Online
Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

Find JSON Path Online 30
查看详情 Find JSON Path Online

解决方法

如果您有复杂的继承类,则应删除所有 @tostring@data (其中包含 @tostring )或子类的 tostring 的任何覆盖。

这是tostostostostostostring方法中使用的所有属性的示例:

my obj: {"superproperty":"super","name":"abc","number":15,"gender":true}
登录后复制
public abstract class BaseObject {
  @Override
  public String toString() {
    ObjectMapper mapper = new ObjectMapper();
    String retVal = null;
    try {
      retVal = mapper.writeValueAsString(this);
    } catch (JsonProcessingException ignored) {
    }
    return retVal;
  }

  @Setter
  @Getter
  @AllArgsConstructor
  public static class ChildObject extends BaseObject {
    private String superProperty;
  }

  @Setter
  @Getter
  public static class ChildObject1 extends ChildObject {
    private String name;
    private int number;
    private boolean gender;

    public ChildObject1(String superProperty, String name, int number, boolean gender) {
      super(superProperty);
      this.name = name;
      this.number = number;
      this.gender = gender;
    }
  }

  public static void main(String[] args) {
    System.out.printf("My obj: %s\n", new ChildObject1("super","abc", 15, true));
  }
}
登录后复制

以上就是使用 Jackson 自动将 POJO 转换为 JSON的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:stackoverflow网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号