使用Gson和HAL(超文本应用程序语言)返回一个包含单个元素的数组

时间:2016-01-27 12:29:49

标签: rest gson hal

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

实施例: 我现在得到的是:

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

而不是:

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

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

由于

1 个答案:

答案 0 :(得分:0)

我解决了使用解决方法。我没有'使用@HalLink,但是包含所有层次结构的代理ad hoc类,以及名为" _links"。

的实例

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

在所有HAL文档(http://stateless.co/hal_specification.html)之后说:"如果您不确定链接是否应该是单数,则假设它将是多个"从http://blog.stateless.co/post/13296666138/json-linking-with-hal"如果一个关系可能有多个链接共享同一个键,那么该值应该是一个链接对象数组"。 通过这种方式,我不会让消费者让他们处理JSON数组或对象。