Spring Rest数据如何更改默认格式从json response

时间:2016-05-09 20:52:08

标签: java json spring rest spring-data-rest

默认情况下,当我点击暴露的存储库时,我得到的JSON看起来像这样:

{
    _links: {}, 
    _embedded: {}, //actual content
    page: {} //paging enabled
}

有没有办法摆脱默认情况下在单词链接&的开头生成的下划线字符。嵌入式? _embedded中有_links的嵌套外观,所以我猜它们都在同一个地方配置。

我需要有类似的东西

{
    links: {},
    embedded: {},
    page: {}
}

我正在使用默认配置

@Import(RepositoryRestMvcConfiguration.class)

提前致谢。

2 个答案:

答案 0 :(得分:2)

由于这是HAL代表它的方式(参见Ali的评论中的链接),“可能没有”(我声称不知道超过1%的Spring Data Rest的功能)......是的,因为有配置属性defaultMediaType,您可以通过application/json设置为spring.data.rest.defaultMediaType=application/json,因此您的Spring Data Rest将生成而不是application/hal+json

这不会完全符合您的要求,但也会更改其他一些内容,但可能足够接近。但是当然,如​​果摆脱一些下划线,你应该认为非常好,完全可以摆脱hal + json。

也许更好的问题是,“为什么”你想要摆脱下划线,但这可能更多的是讨论而不是问题。

答案 1 :(得分:1)

你不应该这样做,现在你处于休息等级3(HAL / HATEOAS),这是一件好事。如果您知道如何使用它,这有很多好处。 http://martinfowler.com/articles/richardsonMaturityModel.html#level3

您可以通过从spring-hateoas中排除spring-data-rest-core来升级到第2级,但我不会推荐它。

HAL的正式规范:https://tools.ietf.org/html/draft-kelly-json-hal-07