gpt4 book ai didi

json - 如何在没有标签的情况下在 Aeson 中序列化记录和数据类型?

转载 作者:行者123 更新时间:2023-12-05 01:31:15 24 4
gpt4 key购买 nike

例如,我有多个构造函数的数据类型

data AB = A 
{
ab :: Text
, a :: Text
}
| B
{
ab :: Text
, b :: Text
} deriving (Generic)

现在,当我使用 Aeson 序列化 A 时,它生成以下 JSON:

{
"tag": "A",
"ab": "some text",
"a": "some text"
}

我知道可以使用 SumEncoding操纵构造函数的处理方式,但找不到我想要的。

是否有可能以某种方式在序列化 JSON 中省略 tag 字段?我只需要一种序列化方式(没有理由保留它来反序列化),但是数据类型非常大,无法编写如何手动序列化它。

最佳答案

Options有一个sumEncoding领域,和defaultOptions将其设置为 defaultTaggedObject .

将其设置为 UntaggedValue(来自 SumEncoding,在 aeson-1.0.0.0 及更高版本中可用)应该可以满足您的需求。

关于json - 如何在没有标签的情况下在 Aeson 中序列化记录和数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37468850/

24 4 0