Java 配置Jackson如何打印JSON
我使用Jackson创建一个JSON文件,并将其转发到外部REST服务。我花了几个小时才发现该服务对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" }, {
[
{
"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;
}
}