2016-02-26 4 views
0

В JSON API мне нужно представлять коллекцию первичных данных, где первичные объекты данных имеют отношение «многие» к себе.JSON Api как представлять отношения «многие» в объектах в первичных данных

ie.

account1 -> canTransferTo (relationship) -account3 
account2 -> canTransferTo (relationship) -account1, account3 
account3 -> canTransferTo (relationship) -account1  

Как это сделать, чтобы я следил за спецификациями API JSO. Может ли это быть так ниже?

{ 
"data": [{ 
    "type": "accounts", 
    "id": "1", 
    "attributes": { 
     "name": "account1" 
    }, 
    "relationships": { 
     "canTransferTo": { 
      "links": { 
       "self": "http://example.com/accounts/1/relationships/canTransferTo", 
       "related": "http://example.com/accounts/1/canTransferTo" 
      }, 
      "data": { 
       "type": "accounts", 
       "id": "3" 
      } 
     } 
    }, 
    "links": { 
     "self": "http://example.com/accounts/1" 
    } 
}, { 
    "type": "accounts", 
    "id": "2", 
    "attributes": { 
     "name": "account2" 
    }, 
    "relationships": { 
     "canTransferTo": { 
      "links": { 
       "self": "http://example.com/accounts/2/relationships/canTransferTo", 
       "related": "http://example.com/accounts/2/canTransferTo" 
      }, 
      "data": [{ 
       "type": "accounts", 
       "id": "1" 
      }, { 
       "type": "accounts", 
       "id": "3" 
      }] 
     } 
    }, 
    "links": { 
     "self": "http://example.com/accounts/2" 
    } 
}, { 
    "type": "accounts", 
    "id": "3", 
    "attributes": { 
     "name": "account3" 
    }, 
    "relationships": { 
     "canTransferTo": { 
      "links": { 
       "self": "http://example.com/accounts/3/relationships/canTransferTo", 
       "related": "http://example.com/accounts/3/canTransferTo" 
      }, 
      "data": { 
       "type": "accounts", 
       "id": "1" 
      } 
     } 
    }, 
    "links": { 
     "self": "http://example.com/accounts/3" 
    } 
}] 

}

ответ

1

Ну, во-первых, JSON вставили не является допустимым JSON. Вы можете проверить любой JSON по адресу http://jsonlint.com. Я предполагаю, что вы наклеили свой JSON, пропустив вставку "}" персонаж. Если я поместил его в конец вашего JSON, это кажется правильным, в соответствии со страницей, упомянутой выше.

Если вы хотите, чтобы подтвердить свой JSON против спецификации JSON-API, вы можете найти спецификацию схему на http://jsonapi.org/schema и вставить его на этой странице: http://jsonschemalint.com/ вместе с JSON, который хочет проверить.

После фиксации его добавления «}» в конце концов, jsonschemalint сказал мне, что это JSON-API-совместимый объект ;-)

+0

ооо! Спасибо большое! это полезно – inforeqd

+0

Рад помочь! p.s .: принять мой ответ, если он помог решить вашу проблему;) – Pavol