2016-02-13 7 views
0

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

Что не так с подходом, который вы уже подумали? – user2004685

+0

Принудительно использовать клиент для генерации временного идентификатора. Интересно, существует ли стандартный способ ссылки на данные в JSON. Я не уверен, но XPATH разрешил что-то подобное в XML-полезной нагрузке. Исследовали, но не смогли найти правильных указателей. – DanglingPointer

ответ

0

Вы можете использовать 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" } 
     } 
    } 
} 
+0

Спасибо, Джейсон за это. Ссылка указывает на черновик. Есть ли какая-либо библиотека для анализа этих ссылок, или я должен написать свой собственный парсер для них и перейти в JSON – DanglingPointer

+0

Это черновик, но он широко используется в схеме JSON. Я думаю, что большинство реализаций в комплекте с JSON Schema validators, но я видел несколько автономных реализаций в javascript на npm. Я не уверен в других языках. Это очень просто реализовать, если вам нужно. – Jason

 Смежные вопросы

  • Нет связанных вопросов^_^