Java 如何格式化RESTfulWebService json输出,使每个json对象在新行上启动?

Java 如何格式化RESTfulWebService json输出,使每个json对象在新行上启动?,java,json,web-services,rest,jersey,Java,Json,Web Services,Rest,Jersey,出于某种原因,我的@GET方法之一会自动以以下格式输出JSON数据,而这两种实现完全相同。我希望我的另一个@GET方法的格式与下面显示的输出完全相同 获取所有医生代码: @Path("/doctors") @GET @Produces(MediaType.APPLICATION_JSON) public List<Doctor> getAllDoctors() throws Exception{ return dao.getAllDoctors(); } 有几种方法可以做到

出于某种原因,我的@GET方法之一会自动以以下格式输出JSON数据,而这两种实现完全相同。我希望我的另一个@GET方法的格式与下面显示的输出完全相同

获取所有医生代码:

@Path("/doctors")
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Doctor> getAllDoctors() throws Exception{
    return dao.getAllDoctors();
}

有几种方法可以做到这一点:

  • 在ResponseFilter中全局:
其思想是覆盖响应内容主体,并使其美观。 请记住,在内部使用Jackson序列化对象

  • 直接在课堂上:
您必须将REST方法的签名更改为响应类型。然后使用ObjectMapper通过Jackson手动序列化对象

一旦你有了Json Obecjt,要做的步骤就是美化它。Jacksonutil有一种方法可以做到这一点

我建议您添加一个查询字符串,以便知道您是否希望有一个漂亮的输出。那会更合适

如果你想要更详细的答案,请告诉我


希望能有所帮助,

你为什么要这样做?JSON就是JSON。它应该由计算机读取,而不是由人读取。那你为什么在乎?如果真的需要的话,为什么不在客户端格式化它呢?我想它只是更容易阅读,而且这是一个相对较小的程序,所以它看起来更好看。你能解释一下为什么我的程序会这样做吗?我的“getALLDoctors()”方法将每个JSON对象输出到一个新行,但我的第二个@GET方法将随机聚集在一起的所有对象输出。虽然这两种方法都运行得非常好,但看到两种相同实现的方法产生的两种不同结果却令人恼火。
@Path("/patients")
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Patient> getAllPatients() throws Exception{
    return dao.getAllPatients();
}
[{"specialty":"surgeon","sex":"male","experience":4,"salary":23232.66,"id":3,"firstName":"kobe","lastName":"bryant"},
{"specialty":"surgeon","sex":"male","experience":4,"salary":23232.66,"id":33,"firstName":"D","lastName":"bryant"},
{"specialty":"eyebrows","sex":"female","experience":1,"salary":1.0,"id":2,"firstName":"joan","lastName":"smith"},
{"specialty":"eyebrows","sex":"female","experience":1,"salary":1.0,"id":69,"firstName":"joan","lastName":"smith"}]