3 回答

TA貢獻1785條經(jīng)驗 獲得超8個贊
我無法添加評論以包含我的建議。所以,在這里提一下:參考這個:Embed object instead of collection in Spring HATEOAS

TA貢獻1836條經(jīng)驗 獲得超4個贊
鏈接應(yīng)序列化為地圖,而不是列表。您可以自己將其轉(zhuǎn)換為地圖,也可以為此使用自定義序列化器/反序列化器。幸運的是 Spring 已經(jīng)有了它們:
@Override
@JsonProperty("_links")
@JsonInclude(Include.NON_EMPTY)
@JsonSerialize(using = Jackson2HalModule.HalLinkListSerializer.class)
@JsonDeserialize(using = Jackson2HalModule.HalLinkListDeserializer.class)
public List<Link> getLinks() {
return super.getLinks();
}
- - 編輯
為了使其工作,您將需要halJacksonHttpMessageConverter消息轉(zhuǎn)換器列表中的 bean。創(chuàng)建一個WebMvcConfigurer并將其添加halJacksonHttpMessageConverter到方法中的轉(zhuǎn)換器extendMessageConverters。
@Autowired
private HttpMessageConverter halJacksonHttpMessageConverter;
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(halJacksonHttpMessageConverter);
}
您應(yīng)該將其添加到列表的前面,或jacksonHttpMessageConverter從列表中刪除原始文件。

TA貢獻1873條經(jīng)驗 獲得超9個贊
發(fā)生這種情況是因為您在代碼中使用了 List 。
@Override
@JsonProperty("_links")
@JsonInclude(JsonInclude.Include.NON_NULL)
public List<Link> getLinks() {
return super.getLinks();
}
您應(yīng)該使用鏈接對象而不是鏈接列表。
添加回答
舉報