Java 配置Jackson如何打印JSON

Java 配置Jackson如何打印JSON,java,json,jackson,Java,Json,Jackson,我使用Jackson创建一个JSON文件,并将其转发到外部REST服务。我花了几个小时才发现该服务对JSON文件的格式非常敏感 这是可以接受的: [ { "email": "foo.bar1@domain.com" }, { "email": "foo.bar2@domain.com" } ] 这是不接受Jackson pretty打印机的默认行为,并导致REST调用失败: [ { "email": "foo.bar1@domain.com" }, {

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

这是可以接受的:

[
  {
    "email": "foo.bar1@domain.com"
  },
  {
    "email": "foo.bar2@domain.com"
  }
]
这是不接受Jackson pretty打印机的默认行为,并导致REST调用失败:

[ {
  "email": "foo.bar1@domain.com"
}, {
  "email": "foo.bar2@domain.com"
} ]
我可以将Jackson配置为使用其他格式吗?让我强调一下:我知道receiving REST服务的作者应该解决这个问题,但这超出了我的范围


在定制漂亮的打印机领域,像Jackson一样的打印机还存在一些问题。但可能已经定制了。

根据要求进行更新

如果您对另一个库开放,请使用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));

据我所知,在第二个示例输出中启用了pretty printconfiguration@Amongalen事实上,它是被启用的。但我需要一个不同的formatting@Marged请参阅更新的答案以了解您的预期结果formatting@Marged它现在生成了您所期望的吗?我认为您必须使用PrettyPrinter接口的自定义实现。您应该检查这个问题,因为答案和问题都不会产生新的信息和结果,所以应该删除这个问题同时,我发现所描述的REST端点问题并不是由格式化使用的,而是由行结尾使用的。也许向下投票者可以做一些更有用的事情,点击close as duplicate按钮,我会做的-
[
  {
    "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;
    }
}