Java Spring Rest数据如何更改默认格式删除“_&引用;json响应中的下划线
默认情况下,当我点击我的公开存储库时,我会得到一个JSON,如下所示:Java Spring Rest数据如何更改默认格式删除“_&引用;json响应中的下划线,java,json,spring,rest,spring-data-rest,Java,Json,Spring,Rest,Spring Data Rest,默认情况下,当我点击我的公开存储库时,我会得到一个JSON,如下所示: { _links: {}, _embedded: {}, //actual content page: {} //paging enabled } 有没有办法去掉默认情况下在单词links&embedded开头生成的下划线字符?嵌入的_中有嵌套的_链接,所以我猜它们都配置在同一个位置 我需要像这样的东西 { links: {}, embedded: {}, page: {}
{
_links: {},
_embedded: {}, //actual content
page: {} //paging enabled
}
有没有办法去掉默认情况下在单词links&embedded开头生成的下划线字符?嵌入的_中有嵌套的_链接,所以我猜它们都配置在同一个位置
我需要像这样的东西
{
links: {},
embedded: {},
page: {}
}
我正在使用默认配置
@Import(RepositoryRestMvcConfiguration.class)
提前感谢。因为HAL就是这样表示的(参见阿里评论中的链接),“可能不知道”(我并不声称知道SpringDataREST超过1%的功能)。。。是的,因为有一个配置属性
defaultMediaType
,您可以通过spring.data.rest.defaultMediaType=application/json
将其设置为application/json
,所以spring数据rest将生成该属性,而不是application/hal+json
这不会完全满足您的需要,但也会改变其他一些事情,但可能已经足够接近了。但是当然,如果去掉一些下划线值得完全去掉hal+json,那么您应该觉得非常好
也许更好的问题是,“为什么”你想去掉下划线,但这可能更多的是讨论而不是问题 您不应该这样做,现在您处于rest级别3(HAL/HATEOAS),这是一件好事。如果你知道如何使用它,这有很多好处 您可以通过将
spring hateoas
从spring data rest-core
中排除而进入第2级,但我不推荐这样做
HAL的正式规范:参见HAL-超文本应用程序语言它似乎不允许定制,并且对于这两个元素来说uu不是可选的……请看一下这里提到的媒体类型。公平点。“为什么”是因为我使用的是一个专有框架,在定义对象时不允许uu作为属性名,以便能够直接进行映射。尽管您的建议是适用的。它没有从json响应中删除u,至少在2.4.4.Release中是这样。我只是在一个简单的演示应用程序中尝试了它,我在application.properties中配置的唯一一件事就是那一行
spring.data.rest.defaultMediaType=application/json
,我得到的名称像“links”
(而不是“links”
),“content”
(而不是“_embedded”
)。所以对我来说很有效,确定你没有其他设置吗?我没有使用spring boot。你是吗?Mine是一个现有的MVCWebSpring项目,后来用SpringDataREST丰富了该项目。我根据文档使用@Component CustomizedRestMvcConfiguration来执行您建议的设置,而不是.properties。让我们把它标记为已回答,我相信你;)我的错,我假设是弹簧靴。当然,如果没有Spring引导,您将不得不更加手动地进行配置。。。所以我唯一能说的是,对于Spring Boot,它是这样工作的,对不起;-)