我使用CrudRepository
与数据库进行交互,创建了具有Restful服务的基本Spring Boot应用程序。
JSON响应包含"_embedded" : { ... }
和"_links" : { ... }
,这些都是我不想要的。
{
"_embedded" : {
"countries" : [
{
"name" : "Antarctica",
"_links" : {
"self" : {
"href" : "http://localhost:8080/world/rest/countries/ATA"
},
"country" : {
"href" : "http://localhost:8080/world/rest/countries/ATA"
}
}
},
...
]
}
如何摆脱这种结构并以简单列表的形式返回对象? 是否可以设置一些属性或配置以将其从所有响应中删除?
我添加了属性spring.hateoas.use-hal-as-default-json-media-type=false
,但没有用。
试图将结果手动转换为列表,countries.forEach(countriesList::add);
;没有运气..
用于映射对象的POJO类
/* Package and Imports */
@Entity(name = "country")
public class Country {
@Id
private String code;
private String name;
private String continent;
private String region;
/* Getters, Setters and equals method below */
}
答案 0 :(得分:0)
在StackOverflow和其他站点上讨论了许多主题之后。我得出的结论是,没有spring-boot-starter-data-rest
会更好。
spring-boot-starter-data-rest
中删除了pom.xml
依赖项。@RestController
来处理请求。@michalk的建议
Disable Hypertext Application Language (HAL) in JSON?
这确实有部分帮助,但不适用于数组。