从 Spring 启动 JSON 响应中删除"_embedded"和"_links"



我创建了一个基本的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我会过得更好.

  1. 我已经从我的pom.xml中删除了spring-boot-starter-data-rest依赖项。
  2. 创建了一个处理请求的@RestController
  3. 创建了处理不同请求类型(GET、POST 等(的方法

正如@michalk所建议的那样

禁用 JSON 中的超文本应用程序语言 (HAL(?

这确实部分有帮助,但对数组没有帮助。

相关内容

最新更新