Java 如何使用Spring HATEOAS在链接部分中生成链接集合

Java 如何使用Spring HATEOAS在链接部分中生成链接集合,java,json,spring-hateoas,Java,Json,Spring Hateoas,我正在尝试生成类似以下示例的JSON输出: { "links": { "self": { "href": "http://api.com/items" }, "item": [ { "href": "http://api.com/items/1" }, { "href": "http://api.com/items/2" } ] "data": [ {"item

我正在尝试生成类似以下示例的JSON输出:

{
    "links": {
        "self": { "href": "http://api.com/items" },
        "item": [
            { "href": "http://api.com/items/1" },
            { "href": "http://api.com/items/2" }
        ]
    "data": [
            {"itemName":"a"}, 
            {"itemName":"b"} 
     ] 
}

请注意,
是链接对象的集合。我该怎么做呢

更新: 将相同的rel多次添加到my
UserResource
会提供以下信息:

"links": [
    {
        "rel": "self",
        "href": "http://localhost:8080/sophia/users/admin"
    },
    {
        "rel": "item",
        "href": "http://localhost:8080/sophia/companies/01393048000170/item/1"
    },
    {
        "rel": "item",
        "href": "http://localhost:8080/sophia/companies/01393048000170/item/2"
    },
    {
        "rel": "item",
        "href": "http://localhost:8080/sophia/companies/01393048000170/item/3"
    }
]

只需添加多个链接与非常相同的rel

Resource resource = new Resource(data);
resource.add(new Link("…", "item"));
resource.add(new Link("…", "item"));

您希望获得的资源似乎是HAL+JSON系列格式,尽管您说的是“链接”,而不是“链接”。您得到的是默认的Spring HATEOAS。您需要使用@EnableHypermedia(HAL)。此外,您的Accept头中应该有application/hal+json,并且可能会生成@RequestMapping属性的参数。

谢谢您的回复。这个结构将只在资源上工作?我有一个
UserResource
类,它扩展了ResourceSupport,并且使用相同的rel添加了多个链接并没有给我一个rel的集合。不,扩展
ResourceSupport
的一切都会起作用。我刚刚使用了
资源
作为常用示例。重要的一行是2-3。