问题标签 [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.
json - Haskell Aeson:如何将 Value 转换为自定义类型?
找不到好的例子。感谢任何帮助。JSON如下:
我使用的代码如下:
如何定义和使用FromJSON
要转换x
为的类型:
或类似的数据结构?请注意[[]]
——我希望 JSON 有多个顶级条目。
json - 不支持的类型 UString 使用 Aeson 和 MongoDB BSON
我正在尝试使用 Data.Aeson.TH derivedJSON 为 MongoDB Data.Bson 生成 ToJSON 和 FromJSON 实例。
目前我正在使用:
在编译时会生成以下错误:
我认为这里的问题是 BSON 文档中的字符串是 Ustring。我需要将 BSON 数据中预期的 UString 转换或以其他方式映射到另一种 String 类型......但不知道如何。
json - 使用 Aeson 解析嵌套的对象数组
我想解析一个 JSON 对象并使用给定的和创建一个name
JSONEventargs
我正在使用 Aeson,现在我被困在转换"args":[{"a": "b"}]
为[(String, String)]
.
提前致谢!
haskell - 为什么 Yesod 中没有 ToJSON/FromJSON 的 Persistent 类型实例?
为生成的类型编写 ToJSON/FromJSON 实例并不难,但是,当你生成代码时,你能把它扔进去吗?或者作为 Yesod 用户,有没有一种简单的方法可以实现这一点?(我还没有深入研究 TH 的工作原理……)
更新: 好的,我喜欢这个建议,但是说我的持久类型是用户。如果我使用
它产生
显然是因为它是一个别名。但
产量
我可能仍然有错误的类型,但我找不到足够的关于 Persistent 生成的内容来获得正确的咒语。
json - 容错 JSON 解析
我正在使用 Data.Aeson 将一些 JSON 解析为 Record 类型。不时将数据添加到 JSON 中,这会破坏我的代码,因为 Aeson 会抱怨以下内容:
预期对象有 21 个名称/值对,但得到 23 个名称/值
我真的更喜欢以容错的方式解析 JSON——我不在乎以后是否有更多的字段被添加到 JSON,只要解析任何你能做的!有没有办法实现这种容错?这是我的代码:
我应该补充一点,我正在使用来自 Data.Aeson.TH 的 derivedJSON 来生成解析代码。如果我手动编写 FromJSON 代码,它是容错的,但我不想这样做......
json - Haskell,Aeson - 如何调试实例?
我有一个复杂的嵌套 json,我试图用 Aeson 和 Attoparsec 将其解析为我的自定义类型。基于来自问题的信息:Haskell, Aeson & JSON parsing into custom type,Aeson: How to convert Value into custom type?和一些来自互联网的信息。
当我使用以下代码时,我从重叠的 FromJSON 实例中获取“Nothing”值,但代码肯定会通过每个实例,我已经通过禁用其他一些实例来测试这一点。所以主要问题是:如何在实例中测试代码并查看 GHCi 中数据在执行过程中如何变化?
PS:尝试设置断点和“跟踪”,但它们仅在 main 和 parseCfg 函数中有效。
python - 在 Haskell 中以通用方式导航 JSON 对象
我的目标是在 Haskell 中编写一个程序,该程序采用 json 文件的名称并将其余参数解释为导航该 json 文件并打印导航到的值的路径。问题是因为 JSON 可以包含多种值类型,我不知道如何让 Haskell 的类型系统理解我想要的。这是我无法正确实现的带有“导航”功能的 Haskell 代码:
作为参考,下面是用 Python 编写相同程序的方式:
该程序将像这样运行:
haskell - Haskell Aeson 解构泛型解析
我有一个 JSON 请求的风格
但是我无法理解如何解构生成的 Value 数据结构。如何获取键的值等。我意识到我可以解析为明确定义的数据结构,但这会给我的用例带来其他类型的问题。
在 modValue 中,我在不知道该放什么的地方发表了评论。我试着把它当作一个地图,因为这就是它在 Aeson 内部的实现方式,但这显然不是类型检查。
编辑:
将 Data.HashMap 添加到导入并使用该行
给出以下错误消息。
编辑2:
在一个突然的预感中,我找到了我之前收到的一条涉及“无序容器”的错误消息。这是 Aeson 使用的包。但我意识到我还安装了包 hashmap,它是作为 Data.HashMap 导入的。来自无序容器的哈希图被导入为 Data.HashMap.Strict 或 Lazy!
无论如何都要更改线路import qualified Data.HashMap as M
以import qualified Data.HashMap.Strict as M
修复它。现在给定的答案有效!
haskell - Aeson derivedJSON 结合管道 sinkParser
继续我对管道和 aeson 的探索,我将如何使用我自己的数据类型,而不是使用Yesod bookValue
中的这个(稍微修改过的)代码片段。
基本上,我想将类型更改dispatch
为 JSONRequest -> IO JSONRequest。如何告诉解析器使用我自己的 fromJSON 派生实例?
我尝试只添加一个类型声明,为 json 上的多态返回类型祈祷,但我意识到它严格用于 Value。