gpt4 book ai didi

json - 如何拥有具有相同字段名称的两条记录?

转载 作者:行者123 更新时间:2023-12-01 17:09:22 25 4
gpt4 key购买 nike

我正在为 JIRA 编写 JSON 服务,并且遇到了与 Haskell 的命名空间冲突的需求。我有这个记录

data Assignee = Assignee {name :: Text} deriving Generic
instance ToJSON Assignee

这是由 JIRA 想要的决定的,不幸的是它希望不同的对象具有相同的字段。

data Reporter = Reporter {name :: Text} deriving Generic
instance ToJSON Reporter

我看到几个选项:

  1. 也许我可以使用模板 Haskell 来规避编译器的提示,但是如何呢?
  2. 我可能根本没有报告者记录,并在创建票证后使用单独的服务更改报告者字段。我知道该怎么做,但这是最好的方法吗?
  3. 手动创建 JSON 对象,但我根据此记录形成它:

      data Fields = Fields 
    { project :: HashMap Key Project
    , summary :: Text
    , issuetype :: HashMap Name Task
    , versions :: [HashMap Name Text]
    , description :: Text
    , assignee :: Assignee
    } deriving (Generic)

手工制作这个的想法让我很兴奋。如果必须的话我会的。

所以,我现在的问题是,如果没有比我提出的方法更好的方法,那么哪一个是最好的行动方案?

最佳答案

最直接的方法是启用 -XDisambiguateRecordFields 扩展。

关于json - 如何拥有具有相同字段名称的两条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26791201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com