配置Jackson如何漂亮地打印JSON

时间:2020-01-30 13:37:00

标签: java json jackson

我使用Jackson来创建JSON文件,然后将其转发到外部REST服务。我花了几个小时才发现该服务对JSON文件的格式非常敏感。

这被接受:

[
  {
    "email": "foo.bar1@domain.com"
  },
  {
    "email": "foo.bar2@domain.com"
  }
]

不接受(这是Jackson漂亮打印机的默认行为),并导致REST调用失败:

[ {
  "email": "foo.bar1@domain.com"
}, {
  "email": "foo.bar2@domain.com"
} ]

我可以配置Jackson使用其他格式吗?让我强调一下:我知道接收REST服务的作者应该解决此问题,但这超出了我的范围。

在杰克逊(Jackson)的自定义“漂亮打印机”领域,例如this one等存在问题。但是也许已经有一个习惯了。

1 个答案:

答案 0 :(得分:0)

根据要求进行更新。

如果您打开另一个图书馆,请使用Gson来获得期望的结果。

    Emp emp = new Emp(1);
    List<Emp> emps = new ArrayList<>();
    emps.add(emp);
    emps.add(emp);

    Gson gson = new GsonBuilder().setPrettyPrinting().create();

    System.out.println(gson.toJson(emps));

输出:

[
  {
    "id": 1
  },
  {
    "id": 1
  }
]

class Emp {
    int id;

    public Emp() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Emp(int id) {
        this.id = id;
    }
}