首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种方法可以注释Java类模型来生成JSON+Hypermedia链接?

有没有一种方法可以注释Java类模型来生成JSON+Hypermedia链接?
EN

Stack Overflow用户
提问于 2014-08-30 02:02:21
回答 1查看 65关注 0票数 0

关于如何使用JAXB and HATEOAS包含超媒体链接的例子有很多,但我找不到任何适用于超媒体+ JSON的例子。我喜欢JAXB,因为只需使用注释就可以将XML映射到对象。包括HATEOAS,这几乎就是我所需要的,只是它只包含在XML中(当然是因为JAXB )。问题是JAXB提供者不支持JSON、as per 2.0 user guide

因此,使用上面的示例,我要查找的不是这个XML+Hypermedia输出

代码语言:javascript
复制
<user-management>
  <users>/user-management/users</users>
  <report>/user-management/report</report>
</user-management>

取而代之的是获取此JSON+Hypermedia输出

代码语言:javascript
复制
{
  "_links": {
    "self": { "href": "/user-management" },
    "users": { "href": "/user-management/users" },
    "report": { "href": "/user-management/report" },
  }
}

*是的,这两个示例都是资源的表示,但对象/模型的示例应该是相似的,因此我不包括它们。

会不会是因为这个JSON+Hypermedia规范还没有标准化,所以现在还没有框架来做这件事呢?我找到的最多的是a proposal和一个"To be continued...

我知道我可以使用MessageBodyWriter创建自己的JAX-RS提供程序,但这只有助于将“应用程序/json”请求编组到对象。我还需要一种方法来获取超媒体链接。

我搜索它的原因是因为我当前的需求是返回包含超媒体链接的JSON数据。

有谁有完整的工作示例吗?我找不到,我隐约记得看过一篇文章,说我需要“滚你自己的”。不可取,但如果这是需要的.

EN

回答 1

Stack Overflow用户

发布于 2014-08-31 01:31:17

你可以使用Jackson来做这件事,它应该能够做你想做的事情,例如:

代码语言:javascript
复制
@Data
public class Container {
    @JsonProperty("_links")
    Map<String,Link> links = new LinkedHashMap<>();
}

@Data
public class Link {
    @JsonProperty("href")
    private String href;
}

更正式地说,您可以定义一个自定义容器,而不是我定义的通用容器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25573790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档