问题标签 [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 - 使用特定顺序将映射序列化为 YAML
我使用该yaml
库来序列化类型Map String t
(或某些类型 t)的值。结果输出中的顺序是相当随机的,这是次优的,因为文件应该是人类可读的。
有没有办法控制地图的序列化顺序?或者,可能更接近问题的核心,一个 aeson Object
?如果没有,什么是合适的解决方法?
json - Aeson:“当期待一个字符串时,却遇到了一个对象”
我对 Haskell 相当陌生,所以我的意思是缺少一些简单的东西。现在,我只是想从标准输入中读取一些 JSON 并取回 AST 作为概念证明。
我有这个 JSON 片段(JSONLint 说没问题):
当我使用该输入执行程序时,我得到:
当我测试一个空数组的文件时,它说它“遇到了数组”。
所以我猜我在这里错过了某种转换步骤,或者我从标准输入错误地读取。你怎么看?
haskell - 忽略/覆盖使用 TemplateHaskell 生成的实例
我正在将 Aeson 用于我正在做的一些客户端-服务器工作,将 ADT 编码为 Json。我Data.Aeson.TH
用来生成toJSON
我需要的实例,但是为 Map 类型生成的实例真的很难看而且很难处理。
我已经定义了我自己的更简单的编码,它只是将它们视为列表:
自然,当我在代码中使用它时,会出现Duplicate instance declarations
错误。
有没有办法解决这个问题?我需要告诉 Template Haskell 不要为 Map 生成 ToJson 实例,或者我需要告诉 GHC 忽略该实例并使用我提供的实例。这些都可以吗?
请注意,这不是“重叠实例”问题。我想完全丢弃一个实例,而不是将它与另一个实例混合。
haskell - 无法将预期类型“Data.ByteString.Lazy.Internal.ByteString”与实际类型“[Char]”匹配
我正在尝试在我的 Haskell 代码中启动并运行一个简单的 Json 解析器,我遇到了 Data.Aeson 这似乎是解决我的问题的可行解决方案
我按照页面上的示例代码进行了一些小的修改,这就是我得到的:
在 GHCi 中运行以下命令会导致标题中出现令人讨厌的消息:
那么,这里有人知道出了什么问题吗?我几乎完全按照编写的示例代码进行了操作,那么为什么它会失败?
json - 在 Haskell 中,如何解码可能是两种不同类型的 JSON 值?
我正在尝试解析一些书目数据,更具体地说,为每个项目提取“主题”字段。数据是 json,看起来像这样:
如果每个条目都是文本或 [文本],我可以提取“主题”,但我不知道如何同时容纳两者。这是我当前状态的程序:
任何帮助,将不胜感激。
编辑:
工作的 FromJSON Row 实例:
json - 使用 Aeson 在 Haskell 中解析嵌套 JSON
我正在尝试从 RESTful API 解析 JSON。返回的 JSON 是高度嵌套的,可能/可能不包含某些字段。以下是一些返回数据的示例:
如您所见,JSON 模式以 a 开头,resultSet
其中包含 a location
、arrival
和queryTime
。反过来location
,包含位置列表,arrival
包含到达列表,并且queryTime
只是 UTC 时间。然后, anarrival
可以包含 a blockPosition
,其中可以包含 atrip
等。很多嵌套。很多可选字段。
为了掌握这一切,我创建了一组新的数据类型。数据类型嵌套类似。对于每种数据类型,我都有一个 FromJSON 实例(来自 Aeson 库)。
现在,问题是:检索数据很容易。我可以通过
但是当我尝试获取 ResultSet 数据时,它以Nothing
.
但是,如果我删除嵌套数据并简单地尝试获取该queryString
字段(通过从 FromJSON 的数据类型和实例中删除字段,它会成功并返回 queryString 字段。
我究竟做错了什么?这是在 Haskell 中解析 JSON 的最简单方法吗?我是这个(学生)的菜鸟,所以请温柔。
json - 您如何使用 Aeson 解析 Bitly 响应 JSON?
我一直在努力尝试使用 Aeson 来解析 Bitly 的响应。有人可以给我一个关于应该定义哪些 Haskell 类型以及如何使用 Aeson 将以下内容解析为这些类型的提示吗?:
这是我到目前为止所尝试的:
当我输入时(为便于阅读而手工编辑):
我回来了(也手工编辑):
在代码中,查找-- LOST RIGHT HERE
. 我不知道如何解析"expand"
.
很高兴看到如何取得进展。也许我走错了路,有人可以让我直截了当(例如,我到目前为止定义的数据类型可能是关闭的)。
json - 使用 aeson 解析带有“随机”整数键的嵌套 JSON
我正在使用aeson
库来为我的自定义Graph
类型生成和解析 json 文件。以下是类型定义。
实际上,我正在使用欧拉图和半欧拉图,它们的所有顶点在二维空间中都有位置。简而言之,Graph 使用 Data.Graph,但这与我的问题无关。每个图表都有自己的 ID,以便在许多其他图表中快速识别它。
这是 json 文件的示例,其中包含有关我的图表的信息:
所以,这是我的toJSON
功能实现:
但我实际上在从 json-file 解析回来时遇到了问题。主要问题是这样一个事实,我们不知道有多少顶点有特定的 Graph,所以它不能被硬编码。这是我第一次尝试编写parseJSON
函数:
实际上我认为我可以开始计数1
并获取顶点,而程序仍然会解析每个 next i
。但这不是一个好的选择,因为 minimumvertex id
并不总是如此1
,有时 nextvertex id
与 current 的差异更大1
。甚至可以解析这些数据吗?无论如何,即使是这个问题的最简单情况(当vertex ids
从开始1
并使用 递增时(+1)
)我也坚持了下来。
好吧。这就是我如何获得最大和最小顶点ID:
所有签名都不是通用的,但这只是示例。
明天我将再次尝试解决这个简单的问题案例。无论如何,主要问题仍然需要一个答案:)
haskell - Aeson解析动态对象
我需要解析没有严格结构的 json API 响应:
怎么可能写出parseResponse
哪些可以解析(或为其选择解析器)以供以后使用?
我的最后一次尝试如下。我不喜欢它,因为它不允许像 Aeson 那样选择响应类型decode
。