本文共 634 字,大约阅读时间需要 2 分钟。
这是一个几乎很难遇到的问题。
首先需要是一个已有的项目,增加HATEOAS,或者改为HATEOAS 这种规范来返回结果。
特别巧合的是有一个自己的通用Result对象,而且这个对象的一个属性用来放具体返回内容的属性叫做 contrent。
因为如果想返回下图这样格式的返回结果:
需要返回结果对象就需要继承HATEOAS 提供的一个基类 org.springframework.hateoas.Resource;
但是如果继承了这个类,返回的json就不会现在contren,content里的对象属性会直接显示到整个json的第一级。
可能这么说不太形象,但是如果你真的遇到这个问题,就会明白。
拿具体的例子来说吧,
我想要如上图的效果,但是HATEOAS会默认把content这一级给忽略了。json里直接就是content的属性。
解决办法:
直接下载 org.springframework.hateoas.Resource; 的源码本地编译。重点是把
@JsonUnwrapped 这个注解注释掉
/** * Returns the underlying entity. * * @return the content */ //@JsonUnwrapped @XmlAnyElement public T getContent() { return content; }
问题就解决了。
转载地址:http://menmi.baihongyu.com/