我正在为JIRA编写JSON服务,并且遇到了与Haskell命名空间冲突的需求。 我有这样的记录你怎么能有两个相同的字段名称的记录?
data Assignee = Assignee {name :: Text} deriving Generic
instance ToJSON Assignee
这是由什么JIRA希望,不幸的是它要对不同的对象相同的字段决定。
data Reporter = Reporter {name :: Text} deriving Generic
instance ToJSON Reporter
我看到几个选项:
- 也许我可以绕过编译器与模板哈斯克尔抱怨,但如何?
- 我可以根本没有Reporter记录,并且在创建票证后使用单独的服务更改记者字段。我知道该怎么做,但这是最好的方法吗?
手工创建JSON对象,但我形成从这个纪录:
data Fields = Fields { project :: HashMap Key Project , summary :: Text , issuetype :: HashMap Name Task , versions :: [HashMap Name Text] , description :: Text , assignee :: Assignee } deriving (Generic)
使这一手的想法使我威金斯。如果我必须,我会的。
所以,现在我的问题是,如果没有其他更好的方法比我提出的方法,哪个是最好的行动方案?
也许你可以在不同的模块,把它们写和不导入'name'功能。 – 2014-11-06 23:16:32