假設兩種數據類型:Elm是否允許循環引用?
type alias Player =
{ name : String
, team : Team
}
type alias Team =
{ name : String
, players : List Player
}
這JSON:
{
"players": [
{ "id": 100, "name": "Sam Bradford", "teamId": 200 },
{ "id": 101, "name": "Kyle Rudolph", "teamId": 200 },
{ "id": 102, "name": "Matthew Stafford", "teamId": 201 },
{ "id": 103, "name": "Marvin Jones Jr.", "teamId": 201 },
{ "id": 104, "name": "Golden Tate", "teamId": 201 },
],
"teams": [
{ "id": 200, "name": "Minnesota Vikings" },
{ "id": 201, "name": "Detroit Lions" },
]
}
很明顯,這個JSON可以被解碼成非空鏈接的對象,而這可以通過一個JSON解碼器確定它正在解碼數據。有沒有辦法解碼這個JSON並創建鏈接的數據結構?我不確定如何用純粹不可變的數據結構來做到這一點,或者如果可能的話。
順便說一句:處理帶有'Dict'和'ID'的循環引用也是@ChadGilbert在他的回答中提到的。 – wintvelt