我创建了一个基本的Spring Boot应用程序,其中包含使用CrudRepository
与数据库进行交互的Restful服务。
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 */
}
在经历了StackOverflow和其他网站上的许多主题之后。我得出的结论是,没有spring-boot-starter-data-rest
我会过得更好.
- 我已经从我的
pom.xml
中删除了spring-boot-starter-data-rest
依赖项。 - 创建了一个处理请求的
@RestController
。 - 创建了处理不同请求类型(GET、POST 等(的方法
正如@michalk所建议的那样
禁用 JSON 中的超文本应用程序语言 (HAL(?
这确实部分有帮助,但对数组没有帮助。