首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >休息一下。比较两种JSON表示

休息一下。比较两种JSON表示
EN

Stack Overflow用户
提问于 2017-11-27 18:54:05
回答 1查看 72关注 0票数 1

我有一个标签系统:

标签

  • id
  • 名字
  • 儿童标签

因此它们可以嵌套(最大深度3)

例如:

  • 食品
    • 饭馆
    • 快餐
    • 中餐

  • 医学
    • 医院
    • 药房

  • 娱乐
    • 极端
      • 滑雪
      • 滑冰

代码语言:javascript
复制
- Family

我有一些有标签的资源。

地点

  • id
  • 名字
  • 标签

我有几个终点:

/api/tags

代码语言:javascript
复制
{
  "items": [
    {
      "_links": {
        "self": {
          "href": "/api/tags/1"
        }
      },
      "id": 1,
      "name": "Food",
      "_embedded": {
        "children": [
          {
            "_links": {
              "self": {
                "href": "/api/tags/4"
              }
            },
            "id": 4,
            "name": "Restaurant",
            "_embedded": {
              "children": []
            }
          },
          {
            "_links": {
              "self": {
                "href": "/api/tags/5"
              }
            },
            "id": 5,
            "name": "Fast food",
            "_embedded": {
              "children": []
            }
          }
        ]
      }
    },
    {
      "_links": {
        "self": {
          "href": "/api/tags/2"
        }
      },
      "id": 2,
      "name": "Medicine",
      "_embedded": {
        "children": []
      }
    },
    {
      "_links": {
        "self": {
          "href": "/api/tags/3"
        }
      },
      "id": 3,
      "name": "Entertainment",
      "_embedded": {
        "children": []
      }
    }
  ]
}

/api/place/1

代码语言:javascript
复制
{
  "id": 1,
  "name": "FooBar Arena",
  "_embedded": {
    "tags": [
      {
        "_links": {
          "self": {
            "href": "/api/tags/1"
          }
        },
        "id": 1,
        "name": "Food"
      },
      {
        "_links": {
          "self": {
            "href": "/api/tags/2"
          }
        },
        "id": 2,
        "name": "Medicine"
      }
    ]
  }
}

因此,我不希望标签在被列为嵌入式资源时拥有嵌入式资源,但不包括嵌入式子资源,我最终得到了两个不同的表示相同数据的自链接的表示,客户机应该如何比较它们呢?比较自链接是可行的,但有一种表示缺乏children

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-27 22:04:13

我相信一个好的HAL客户不认为_embedded是表示的一部分。一个好的HAL客户端只是使用来自_embedded的值来温暖缓存。出现在_embedded中的项仍应出现在_links中。

因此,只要每个资源的标记出现在_links中,就不需要多次嵌入相同的资源。

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

https://stackoverflow.com/questions/47517898

复制
相关文章

相似问题

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