有条件地呈现元素作为链接以在Java中实现HAL

有条件地呈现元素作为链接以在Java中实现HAL,java,json,marshalling,jackson,Java,Json,Marshalling,Jackson,我试图在JAX-RS服务中实现。我的项目由包含许多项目的用户组成,这些项目包含许多包含各种数据的节点和指向其他节点的指针 因此,当一个端点被击中时,我希望将对象嵌入一层深,然后链接: /用户有用户数据和“_嵌入”项目,但仅限于这些项目 包含指向节点(和自身)的“\u链接” /project/1234具有“嵌入的”节点,但这些节点“链接”到进一步的数据 等等 Jackson JSonfilter看起来很近,但我还没完全理解。特别相关的是,有时属性将映射到“\u嵌入”集合中,有时映射到使用不同技

我试图在JAX-RS服务中实现。我的项目由包含许多项目的用户组成,这些项目包含许多包含各种数据的节点和指向其他节点的指针

因此,当一个端点被击中时,我希望将对象嵌入一层深,然后链接:

  • /用户有用户数据和“_嵌入”项目,但仅限于这些项目 包含指向节点(和自身)的“\u链接”
  • /project/1234具有“嵌入的”节点,但这些节点“链接”到进一步的数据
等等

Jackson JSonfilter看起来很近,但我还没完全理解。特别相关的是,有时属性将映射到“\u嵌入”集合中,有时映射到使用不同技术的“\u链接”中

有人试过这样的东西吗


有HalBuilder,但它似乎需要手动序列化,我希望避免这种情况。同样地,Jackson似乎与手工序列化一样多的代码。

您需要实现自定义Jackson序列化程序()

看看SpringHateoas项目。他们已经实现了一个jackson扩展
HalJacksonModule
( )为Jackson启用HAL序列化。我认为你可以使用它或者根据你的需要调整它


此外,项目“Spring数据Rest”(http://www.springsource.org/spring-data/rest)提供了一种使用SpringHateOAS将JPA模型导出到REST(使用hateoas)的方法。您可以查看代码以获得灵感,也可以简单地在代码中使用框架。(请记住将
HalJacksonModule
注册到
ObjectMapper
)。

我发现RestExpress库非常棒,它包括对HAL的支持。作者基于一个简单的配置完成了构建序列化机制和链接的所有工作


您能找到解决方案吗?