Rest 使用Gson和HAL(超文本应用程序语言)返回包含单个元素的数组
我在使用(的Java库)和仅使用单个元素序列化_links部分中的链接列表时遇到问题。数组被序列化为对象,而不是具有单个链接的数组 例如: 我现在得到的是:Rest 使用Gson和HAL(超文本应用程序语言)返回包含单个元素的数组,rest,gson,hal,Rest,Gson,Hal,我在使用(的Java库)和仅使用单个元素序列化_links部分中的链接列表时遇到问题。数组被序列化为对象,而不是具有单个链接的数组 例如: 我现在得到的是: { "year": 2008, "_embedded": { "items": { "_links": { "self": { "href": "/first_item" } } } } } 而不是: { "year": 2008,
{
"year": 2008,
"_embedded": {
"items": {
"_links": {
"self": {
"href": "/first_item"
}
}
}
}
}
而不是:
{
"year": 2008,
"_embedded": {
"items": {
"_links": {
"self": [
{
"href": "/first_item"
}
]
}
}
}
}
我用_嵌入式部分解决了同样的问题,但不能用links部分解决
谢谢我使用解决方法解决了这个问题。我不使用@HalLink,而是使用一个代理临时类,该类包含所有层次结构,其实例名为“\u links” 因此,使用自定义Href对象列表,当它有一个链接时,我将通过一个元素返回预期的self属性as list 在所有HAL文档()中都说:“如果您不确定链接是否应该是单数的,则假定它将是多个的”,并且“如果一个关系可能有多个链接共享同一个键,那么该值应该是一个链接对象数组”。
通过这种方式,我不会破坏消费者处理JSON数组或对象的能力。我可能会用这种方式调整消费者: