0

我在使用Halarious ( HAL 规范的 Java 库)和Gson仅使用单个元素序列化 _links 部分中的链接列表时遇到问题。该数组被序列化为一个对象,而不是具有单个链接的数组。

示例:我现在得到的是:

{
  "year": 2008,
  "_embedded": {
    "items": {
      "_links": {
        "self": {
          "href": "/first_item"
        }
      }
    }
  }
}

代替:

{
  "year": 2008,
  "_embedded": {
    "items": {
      "_links": {
        "self": [
          {
            "href": "/first_item"
          }
        ]
      }
    }
  }
}

我用 _embedded 部分解决了同样的问题,但我无法为链接部分解决它。

谢谢

4

1 回答 1

0

我使用解决方法解决了。我不使用@HalLink,而是使用一个代理临时类,它包含所有层次结构,并且哪个实例被命名为“_links”。

因此,当它具有单个链接时使用自定义 Href 对象列表,我将收到预期的 self 属性作为具有单个元素的列表。

在所有 HAL 文档 ( http://stateless.co/hal_specification.html ) 都说:“如果您不确定链接是否应该是单数,假设它是多个”并且来自http://blog.stateless。 co/post/13296666138/json-linking-with-hal “如果关系可能有多个链接共享相同的键,则值应该是链接对象数组”。​通过这种方式,我不会破坏消费者让他们处理 JSON 数组或对象。

于 2016-01-27T19:03:39.757 回答