问题标签 [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.
haskell - 类型签名需要库未导出的类型
所以我使用了 aeson 库,并认为具有以下功能会非常有用:
当我向 GHCi 询问类型时,我得到:
但是,Parser 本身实际上并没有由Data.Aeson
or导出Data.Aeson.Types
。我是否被迫没有我定义的函数的类型签名?
或者,如果有人知道完成我想做的事情的更好方法,我会对你的建议感兴趣。
haskell - 如何让 yesod-persistent 识别我的 aeson 解析实体数组的类型?
我有一个 yesod 处理程序,它可以接受一些带有对象数组的 json。我想将所有对象插入数据库。
但是有些方法,它无法识别我的实体类型。(尽管同一模块中的其他 POST 和 GET 处理程序工作得很好。)我可以说我已经很接近了,但我不确定该怎么做,因为“a0”不是我在任何地方声明的类型。这是错误:
json - 如何使用 Haskell Aeson 解析数组
我有一个 JSON 文档,看起来像:
我想将其解析为一组数据类型:
我在尝试FromJSON
为 DataPoint 编写实例时遇到了很多问题。
我尝试使用 Lens 来破坏 DataPoint 记录,但它无法编译:
这个错误失败了(前两行我什至没有镜头技巧,只是试图创建一个DataPoint <$> 1 <*> 2
):
有一个更好的方法吗?
有人有将值数组解析为更详细结构的示例吗?
haskell - 具有依赖类型的 parseJSON 类方法
并提前感谢您的帮助:)
这是我要解决的问题:
我有一个类型(MyType
),我为它写了一个 JSON 解析器(使用 aeson 库),这个解析器依赖于另一个值(Config
):
我真正想FromJSON
为它写一个实例......但parseJSON
唯一取决于Value
(不能有配置):
我想知道在这种情况下是否可以使用类型类。我可能错过了一些类型技巧......或者我可以使用语言扩展?
谢谢!
haskell - 忽略 Haskell Aeson 输入中的 JSON 字段
我有一个 Haskell 记录
我想忽略任何输入 JSON 中“令牌”的值。例如,如果输入 JSON 是
我希望生成的User
对象包含User { email = "foo@bar.com", token = "" }
.
我定义了以下内容:
那么有没有更好的方法来设置token
字段的值v .:? "" .!= ""
,而忽略"token": "abc123"
JSON 中的?
我试过了
但它不会编译,因为<*> ""
需要是Parser Text
.
haskell - 嵌套枚举类型的 ToJSON 和 FromJSON 实例
我目前正在包装一个 Rest(ish) API。JSON 看起来像这样,但更广泛:
这似乎可以用 Enum 类型很好地表示。例如:
我有两个问题。
虽然我可以很容易地编写 ToJSON 实例:
当我编写相应的 FromJSON 实例时,它们无法解码:
为什么是这样?
其次,这似乎需要我编写大量的样板文件。有没有办法解决?例如,使用 Show/Read 或模板 haskell?
unit-testing - 使用 Aeson 转换 JSON 以进行测试
在 Yesod REST 服务的集成测试中,调用的 API 返回
其中xxx
是 MongoDB ObjectID(12 字节十六进制编码字符串)。
我想验证返回的 JSON 实际上是以这种形式使用aeson的。
有没有办法将 JSON 转换为规范形式,比如说
如果userId
字段的值与给定的正则表达式匹配?
然后我可以使用assertEquals
将响应 JSON(实际)与预期值相匹配。
在Scala Lift JSON 库中,我可以执行以下操作:
埃森有类似的东西吗?
json - Haskell :: Aeson :: 根据字段值解析ADT
我正在使用一个返回 JSON 响应的外部 API。其中一个响应是对象数组,这些对象由其中的字段值标识。我在理解如何使用 Aeson 解析这种 JSON 响应时遇到了一些麻烦。
这是我的问题的简化版本:
在 API 文档中,据说可以通过字段objectClass来识别对象,该字段对于我们的Video对象具有值“video”,对于我们的AudioBook等具有值“audiobook” 。示例 JSON:
问题是如何使用 Aeson 处理这种类型的 JSON?
haskell - Haskell:重用带有镜头、镜头-aeson 和嵌套 JSON 的 FromJSON 实例
我一直在玩 Aeson 和镜头包(lens-aeson,从核心镜头包迁移而来),一直在努力让它们一起工作。
作为一个玩具示例,我有一个类型:
和 FromJSON 实例:
到目前为止,一切都很好。
现在,假设我有一些嵌套的 JSON 数据进来,我想从中提取:
我不关心其余的,只关心这个“颜色”值。更糟糕的是,假设 JSON 不是特别一致,所以有时我有
和其他时候
我希望能够尽可能轻松地获取颜色值,然后理想地使用我的 FromJSON 实例将其解析为一种颜色。这是一个玩具示例,但数据类型可能有许多字段等,而不是颜色。
我开始研究lens-aeson的东西,这让我的希望大增。它允许非常容易地查看 JSON 结构。例子:
但是我找不到通过我的 parseJSON 调用来运行它的方法来返回Just Yellow
。parseJSON 似乎很接近,因为它采用了正确的类型(里面的东西可能最少),但在那之后就分崩离析了。理想情况下,我可以执行以下操作之一:
我最接近弄清楚的是重新编码然后解码上述结果,例如:
这给了我我想要的一些 JSON 编码数据。在更复杂的情况下,如果该数据是一个对象或数组,我可以decode
像往常一样在它上面运行以取回我更复杂的类型,但解码不喜欢不正确的 JSON;未包装在数组或对象语法中的东西。此外,先解码然后编码似乎非常混乱且性能不佳。
我对镜头和整个 Aeson 相当陌生(以及 Haskell,尽管我已经开始理解整体上像 monads/applicatives 这样的东西,所以进展缓慢!)。你们将如何完成这项工作?
我的一般动机是我将处理大量 JSON 数据,但实际上只关心它的片段,因此每次我需要从 JSON 中的不同位置取出这些片段时,我宁愿避免声明数据类型,而只是为我关心的位声明类型。
请注意,我使用的是 lens-aeson-1 和 lens-4.4.0.1,而不是工作方式略有不同的 aeson-lens(它可能与答案相关)!
提前致谢!詹姆士
json - 如何使用 AESON 读取嵌套 JSON 中的数组
我正在编写一个使用 Github Webhooks API 的应用程序。在钩子消息中,我得到了这个 JSON 结构:http ://organicorange.ro:8000/set
我正在做这样的类型声明:
如何解析“修改”数组以返回列表?