问题标签 [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 投票
1 回答
2008 浏览

json - Haskell Aeson:如何将 Value 转换为自定义类型?

找不到好的例子。感谢任何帮助。JSON如下:

我使用的代码如下:

如何定义和使用FromJSON要转换x为的类型:

或类似的数据结构?请注意[[]]——我希望 JSON 有多个顶级条目。

0 投票
3 回答
4204 浏览

json - Haskell、Aeson 和 JSON 解析成自定义类型

继上一篇文章之后,我发现我完全被卡住了。我正在尝试将 JSON 结构解析为我自己的类型,不仅我坚持如何解析数组,我什至不确定我是否按预期使用 Aeson 库。任何帮助将不胜感激。

编码:

测试文件:

0 投票
1 回答
353 浏览

json - 不支持的类型 UString 使用 Aeson 和 MongoDB BSON

我正在尝试使用 Data.Aeson.TH derivedJSON 为 MongoDB Data.Bson 生成 ToJSON 和 FromJSON 实例。

目前我正在使用:

在编译时会生成以下错误:

我认为这里的问题是 BSON 文档中的字符串是 Ustring。我需要将 BSON 数据中预期的 UString 转换或以其他方式映射到另一种 String 类型......但不知道如何。

0 投票
2 回答
2439 浏览

json - 使用 Aeson 解析嵌套的对象数组

我想解析一个 JSON 对象并使用给定的和创建一个nameJSONEventargs

我正在使用 Aeson,现在我被困在转换"args":[{"a": "b"}][(String, String)].

提前致谢!

0 投票
4 回答
1807 浏览

haskell - 为什么 Yesod 中没有 ToJSON/FromJSON 的 Persistent 类型实例?

为生成的类型编写 ToJSON/FromJSON 实例并不难但是,当你生成代码时,你能把它扔进去吗?或者作为 Yesod 用户,有没有一种简单的方法可以实现这一点?(我还没有深入研究 TH 的工作原理……)

更新: 好的,我喜欢这个建议,但是说我的持久类型是用户。如果我使用

它产生

显然是因为它是一个别名。但

产量

我可能仍然有错误的类型,但我找不到足够的关于 Persistent 生成的内容来获得正确的咒语。

0 投票
1 回答
1124 浏览

json - 容错 JSON 解析

我正在使用 Data.Aeson 将一些 JSON 解析为 Record 类型。不时将数据添加到 JSON 中,这会破坏我的代码,因为 Aeson 会抱怨以下内容:

预期对象有 21 个名称/值对,但得到 23 个名称/值

我真的更喜欢以容错的方式解析 JSON——我不在乎以后是否有更多的字段被添加到 JSON,只要解析任何你能做的!有没有办法实现这种容错?这是我的代码:

我应该补充一点,我正在使用来自 Data.Aeson.TH 的 derivedJSON 来生成解析代码。如果我手动编写 FromJSON 代码,它是容错的,但我不想这样做......

0 投票
1 回答
652 浏览

json - Haskell,Aeson - 如何调试实例?

我有一个复杂的嵌套 json,我试图用 Aeson 和 Attoparsec 将其解析为我的自定义类型。基于来自问题的信息:Haskell, Aeson & JSON parsing into custom typeAeson: How to convert Value into custom type?和一些来自互联网的信息。

当我使用以下代码时,我从重叠的 FromJSON 实例中获取“Nothing”值,但代码肯定会通过每个实例,我已经通过禁用其他一些实例来测试这一点。所以主要问题是:如何在实例中测试代码并查看 GHCi 中数据在执行过程中如何变化?

PS:尝试设置断点和“跟踪”,但它们仅在 main 和 parseCfg 函数中有效。

0 投票
1 回答
1123 浏览

python - 在 Haskell 中以通用方式导航 JSON 对象

我的目标是在 Haskell 中编写一个程序,该程序采用 json 文件的名称并将其余参数解释为导航该 json 文件并打印导航到的值的路径。问题是因为 JSON 可以包含多种值类型,我不知道如何让 Haskell 的类型系统理解我想要的。这是我无法正确实现的带有“导航”功能的 Haskell 代码:

作为参考,下面是用 Python 编写相同程序的方式:

该程序将像这样运行:

0 投票
1 回答
591 浏览

haskell - Haskell Aeson 解构泛型解析

我有一个 JSON 请求的风格

以及Yesod 书中的这段代码片段

但是我无法理解如何解构生成的 Value 数据结构。如何获取键的值等。我意识到我可以解析为明确定义的数据结构,但这会给我的用例带来其他类型的问题。

在 modValue 中,我在不知道该放什么的地方发表了评论。我试着把它当作一个地图,因为这就是它在 Aeson 内部的实现方式,但这显然不是类型检查。

编辑:

将 Data.HashMap 添加到导入并使用该行

给出以下错误消息。

编辑2:

在一个突然的预感中,我找到了我之前收到的一条涉及“无序容器”的错误消息。这是 Aeson 使用的包。但我意识到我还安装了包 hashmap,它是作为 Data.HashMap 导入的。来自无序容器的哈希图被导入为 Data.HashMap.Strict 或 Lazy!

无论如何都要更改线路import qualified Data.HashMap as Mimport qualified Data.HashMap.Strict as M修复它。现在给定的答案有效!

0 投票
1 回答
947 浏览

haskell - Aeson derivedJSON 结合管道 sinkParser

继续我对管道和 aeson 的探索,我将如何使用我自己的数据类型,而不是使用Yesod bookValue中的这个(稍微修改过的)代码片段。

基本上,我想将类型更改dispatch为 JSONRequest -> IO JSONRequest。如何告诉解析器使用我自己的 fromJSON 派生实例?

我尝试只添加一个类型声明,为 json 上的多态返回类型祈祷,但我意识到它严格用于 Value。