问题标签 [aeson]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
333 浏览

haskell - 我想使用酸存储 aeson 的值类型

我想使用酸商店存储 aeson Values。我采用了最小的酸实现,并试图天真地将类型切换到值。这些是我对 derivedSafeCopy 的调用:

JSONState 和 JSONStateStore 是我自己的类型。我收到此错误:

0 投票
2 回答
3266 浏览

haskell - 使用 Aeson 解析嵌套 JSON 中的数组

我正在尝试FromJSON为 Aeson 编写一个函数。

JSON:

ADT:data Movie = Movie {id::String, title::String}

我的尝试:

这给了Couldn't match expected type 'Parser t0' with actual type 'Maybe a0' In the first argument of 'head'.

如您所见,我正在尝试选择 中的第一部电影Array,但我也不介意获取电影列表(如果数组中有多个电影)。

0 投票
2 回答
344 浏览

haskell - 如何使用 aeson-schema 包?

aeson-schema是一个用于根据 JSON 模式验证 JSON 数据的包。有没有人举例说明如何使用它?

0 投票
1 回答
1976 浏览

json - 带有 Aeson 的任意 JSON 键 - Haskell

我有一堆带有任意键的嵌套 JSON 对象。

哪里A, B,C提前是未知的。这三个人中的每一个也可能有兄弟姐妹。

我想知道是否有一种方法可以用 Aeson 以某种优雅的方式将其解析为自定义类型。我一直在做的是将它加载到 AesonObject中。

您将如何实现FromJSON这种 JSON 对象?

谢谢!

编辑

这应该编译到CountryDatabase哪里......

0 投票
1 回答
111 浏览

haskell - 如何使用 aeson 将 JSON 的非字符串部分保留为字符串?

我有一个接收 JSON 的服务器,如下所示:

除了“result”之外的所有东西都用于服务器,它将被转发给客户端(Worker --JSON--> Server --value of “result”--> Client)。因此,在用 aeson 解析这个东西时,我想将“结果”的值保留为字符串(或 Text 或诸如此类),这样我就可以将其转发给客户端而不用关心里面的内容。问题是“结果”可以是任何东西(数组、对象等)。所以如果我这样做

aeson的decode函数将返回Nothing,因为“结果”不一定是 JSON 字符串...

我如何告诉 aeson 保持 JSON 对象的部分原样并把它们交给我,这样我就可以用它们做我想做的事了?

0 投票
1 回答
386 浏览

haskell - Aeson 的 derivedJSON 不能按预期对枚举工作

我通常编写自己的ToJSON实例FromJSON,但我决定使用deriveJSON类型,因为它非常简单:

我本来希望JSON推导只是将枚举写为字符串。相反,它是哈希的关键!{"HIGH":[]}

为什么这是默认行为?

0 投票
2 回答
1835 浏览

haskell - 使用包含保留关键字的字段名解析 JSON

我正在尝试用 aeson 解析以下 JSON。

由于我想忽略很多领域,看来我应该使用 GHC generics。但是如何编写使用 Haskell 关键字(如dataand )的数据类型定义type?以下当然给出:parse error on input `data'

0 投票
2 回答
413 浏览

json - FromJSON 自定义为自定义类型

最新版本的 Data.Aeson 改变了 ToJSON 和 FromJSON 适用于简单类型的方式,例如:

它曾经是通用调用:

...将创建看起来像 {"Read":[]} 或 {"Write":[]} 的 JSON。

但现在它创建了: {tag:"Read",contents:"[]"}

这是有道理的,但会破坏我编写的代码。我手工编写了一个 toJSON 部分以提供正确的外观,但编写 fromJSON 让我感到困惑。

有任何想法吗?

谢谢

0 投票
2 回答
1426 浏览

haskell - 使用 lens-aeson 从 JSON 中提取值

我刚刚阅读了https://www.fpcomplete.com/user/tel/lens-aeson-traversals-prisms上的教程,并且我已成功将查询写入 json 字节串。但是,我没有得到我想要的那种结果值。

我想做一些类似的事情

但是 (j^? key "some key") 的类型为 "Maybe Value"。

这一定是一种足够常见的模式,如果没有实用函数将值转换为文本,我会感到惊讶。有任何想法吗?

0 投票
1 回答
222 浏览

haskell - Yesod 表单或 JSON/Ajax 或其他

我正在为我的基于 Yesod 的站点编写一个 CRUD 界面,但我遇到了一些值的问题。特别是,我正在尝试对以下值进行 CRUD:

我很难找到一种使用 Yesod 和 Aeson 提供的工具来创建其中一个的好方法。在遥远的过去,当我使用 formlets 时,我会使用表单的 monad 转换器版本来执行以下操作:

(我可能没有完全正确地理解formlets 语法,但希望那里的Haskellers 能理解要点)。这会产生一个不包含 UUID 字段的表单和一个运行 IO 操作以在后期生成数据的表单解析器的效果。

我不确定如何进行。我考虑了与 Aeson 解析相同的想法,但 attoparsec(底层解析器)也不是单子转换器。

除了具有中间数据表示之外,任何人都可以想到更多的选择吗?