我如何格式化restful webservice json输出,以便每个json对象在新行上启动?

时间:2014-03-21 21:36:46

标签: 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();
}

获取所有患者代码:

@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"}]

1 个答案:

答案 0 :(得分:0)

有几种方法可以这样做:

  • 全球范围内的ResponseFilter:

我们的想法是覆盖响应内容主体并使其非常漂亮。 请记住,泽西内部将杰克逊的对象序列化。

  • 直接在课堂上:

您必须将REST方法的签名更改为Response类型。然后,您将使用ObjectMapper通过Jackson手动序列化您的对象。

一旦你拥有了Json Obecjt,这个步骤就是美化它。 JacksonUtils有办法这样做。

我建议你添加一个查询字符串,以便知道你是否想要一个漂亮的输出。那将更合适。

如果您想要更详细的anserw,请告诉我。

希望它有所帮助,