引用JSON

时间:2016-02-13 06:45:17

标签: json jsonschema object-reference object-relationships

在JSON有效负载中,如何在一个地方引用另一个地方的数据?

用例:想象一下明确定义的可序列化实体A(a1,a2,a3)和B(b1,b2,b3)。现在考虑需要以下内容的HTTP请求有效负载:

   {
     data : {
              "entityOne"   : Entity Representation of entity A,
              "entityTwo"   : Entity Representation of entity B
     },
     relationships : {
             "parenthood" : // Here I need to refer entityOne & entityTwo
                            // to express the notion of one being child of other
     }
   }

请让我知道您对实现此参考的想法。

我考虑过的方法:

强制客户端针对有效负载中的每个实体发送临时引用ID,并在关系中使用它们,如下所示

   {
     data : {
              "entityOne"   : { "id" : "temp1" -- other data for type A }
              "entityTwo"   : { "id" : "temp2" -- other data for type B }
     },
     relationships : {
             "parenthood" :  {
                                "parent" : "temp1",
                                "child"  : "temp2"
              }
     }
   }

1 个答案:

答案 0 :(得分:0)

您可以使用JSON参考https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03

{
    "data" : {
        "entityOne": { ... }
        "entityTwo": { ... }
    },
    "relationships" : {
        "parenthood" :  {
            "parent" : { "$ref": "#/data/entityOne" },
            "child"  : { "$ref": "#/data/entityTwo" }
        }
    }
}