data
オブジェクトをマーシャリングするためのレコードを書いていJIRA
JSON
ます。問題は、複数のオブジェクトが名前と値のペアに対して同じラベルを持っていることです。例えば :
(curl から返され、フォーマット済み)
{"expand":"schema,names"
,"startAt":0
,"maxResults":2
,"total":74
,"issues":[
{"expand":"editmeta,renderedFields,transitions,changelog,operations"
,"id":"183614"
,"self":"https://10.64.16.44/rest/api/latest/issue/183614"
,"key":"BNAP-339"
,"fields":{"versions":[
{"self":"https://10.64.16.44/rest/api/2/version/28240"
,"id":"28240"
,"name":"2012-12-07"
,"archived":false
,"released":false
}
]
,"status":{"self":"https://10.64.16.44/rest/api/2/status/1"
,"description":"The issue is open and ready for the assignee to start work on it."
,"iconUrl":"https://10.64.16.44/images/icons/status_open.gif"
,"name":"Open"
,"id":"1"
}
,"description":"Do Re Mi Fa"
,"resolution":null
}
}
]
問題のある対応する Haskelldata
レコードを作成すると、次のようになります。
data Issue = Issue {expand :: String
,id :: String
,self :: String
,key :: String
,fields :: Fields
} deriving Generic
data Version = Version {self :: String
,id :: String
,name :: String
,archived :: Bool
,released :: Bool
} deriving Generic
「id」と「self」は衝突します。レコード内の名前を変更し、手動で作成したFromJSON
インスタンスで修正するだけで、これを解決できることがわかりました。代替ソリューションは大歓迎です。