Ссылка на данные в формате JSON

В полезной нагрузке 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
     }
   }

Пожалуйста, дайте мне знать ваши мысли для достижения этой ссылки.

Подход, который я рассмотрел:

Принудить клиента отправлять временный ссылочный идентификатор для каждого объекта в полезной нагрузке и использовать их в отношениях следующим образом

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

1 ответ

Решение

Вы можете использовать JSON Reference https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03

{
    "data" : {
        "entityOne": { ... }
        "entityTwo": { ... }
    },
    "relationships" : {
        "parenthood" :  {
            "parent" : { "$ref": "#/data/entityOne" },
            "child"  : { "$ref": "#/data/entityTwo" }
        }
    }
}
Другие вопросы по тегам