- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很惊讶 Aeson 将 ()
编码为空数组。这种行为背后的原因是什么?我认为 null
会更自然,我错了吗?
*Main> encode ()
"[]"
最佳答案
()
的 ToJSON
实例定义为:
instance ToJSON () where
toJSON _ = emptyArray
{-# INLINE toJSON #-}
因为通常,元组被编码为数组:
instance (ToJSON a, ToJSON b) => ToJSON (a,b) where
toJSON (a,b) = Array $ V.create $ do
mv <- VM.unsafeNew 2
VM.unsafeWrite mv 0 (toJSON a)
VM.unsafeWrite mv 1 (toJSON b)
return mv
(我认为 null
没有多大意义;通常 null
表示缺乏值(value),而可能是一个,所以在Haskell 你会使用 Nothing
。事实上,encode Nothing
返回 "null"
。()
只是一个0元组,这个实例与其他元组更一致。)
关于json - 为什么 Aeson 将 () 编码为空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19477977/
如果我有 JSON我尝试推导出 FromJSON实例自动使用 Generics ,我遇到了 id 的问题存在于 JSON 中的多个位置. 有没有办法让我只覆盖 id部分还是我必须编写整个实例才能更改这
如何声明以下数据类型的 FromJSON 实例: data Privacy = Everyone | AllFriends | FriendsOfFrien
我有这样的数据类型: data A = A T.Text deriving (Generic, Show) instance A.ToJSON A 如果我对它使用A.encode: A.encode
如果不是Nothing,我试图返回一个JSON数据表示,如果Nothing则返回一个空的JSON对象; 我知道我可以做到: encode () -- "[]" 但现在我想要一个空对象( "{}" )。
我有一个(有效)json 编码数组,其中数据丢失或格式错误。我希望 Aeson 将其转换为 Maybe [Maybe Point] 并具有 Nothing,其中数组元素不是有效的 Point。 imp
我需要解析一个具有字符串元素的对象,其中字符串本身是一个字符串化对象: { "a" : "apples", "bar" : "{\"b\":\"bananas\"}" } 我想将其解析为
我正在尝试解析 JSON 以生成具有多个构造函数的类型。挑战在于该类型以包含所需数据的键的名称进行编码。理论上,我可以使用一堆 .:? 调用,然后检查给定的键是否返回 Just 但我认为必须有更好的方
我有一个格式为的 JSON 请求 {"command":"get","params":{"something":"something else"}} 以及来自 Yesod book 的代码片段 {-#
我需要解析没有严格结构的 json API 响应: { response: { /* any object here */ } } 如何编写 parseResponse 来保留解析(或为其选择解析器
假设有一个像这样的 JSON: { "bob_id" : { "name": "bob", "age" : 20 }, "jack_id" : { "name":
函数 decode 和 decode' 来自 aeson 包装几乎相同。但是它们在文档中描述了细微的差异(在此处仅发布文档的有趣部分): -- This function parses immedia
例如,我有多个构造函数的数据类型 data AB = A { ab :: Text , a :: Text } | B { ab :: Text , b ::
我正在尝试使用 aeson 来解析 api 返回的 json。使用 wreq 从 api 端点获取响应。在此字符串上运行 eitherDecode 时,我得到: Left "Failed readin
我所说的“历史数据”只是指日期作为键,当天的值作为值。 例如,政府机构或大学的研究部门经常以这种格式编制有关地震、降雨、市场变动等的日期 { "Meta Data": {
我有一个复杂的嵌套 json,我正在尝试使用 Aeson 和 Attoparsec 将其解析为我的自定义类型。基于问题的信息:Haskell, Aeson & JSON parsing into cu
我想解析一个 JSON 对象并使用给定的 name 创建一个 JSONEvent和 args 我正在使用 Aeson,现在我坚持转换 "args":[{"a": "b"}]到 [(String, St
我想使用酸商店存储 aeson Values。我采用了最小的酸实现,并试图天真地将类型切换到值。这些是我对 derivedSafeCopy 的调用: $(deriveSafeCopy 0 'base
aeson似乎在解析 JSON 时采取了一种有点简单的方法:它将顶级 JSON 值(对象或数组)解析为自己的固定表示,然后提供帮助用户将该表示转换为自己的表示的工具。当 JSON 对象和数组很小时,这
假设我要实现 FromJSON对于数据类型。以下是完整的源代码: {-# LANGUAGE NamedFieldPuns , OverloadedStrings , TupleSect
我有以下问题,我有一个带有可选键的 JSON 格式,我需要从我的 haskell 代码生成。 让我们举个例子 {-# LANGUAGE DeriveGeneric #-} import GHC.Gen
我是一名优秀的程序员,十分优秀!