25得票3回答
为什么GHC Haskell不支持重载记录参数名称?

我所说的是无法定义以下内容: data A = A {name :: String} data B = B {name :: String} 我知道GHC会将其简化为普通函数,解决这个问题的惯用方法是: data A = A {aName :: String} data B = B {...

20得票1回答
为什么库设计者在 Text 明显适用的情况下使用 ByteString?

在开发我的应用时,我遇到了Aeson不能解码UTF8输入的问题。深入挖掘后,我发现它依赖于Attoparsec的Parser ByteString,这似乎是问题的根源。但这不是我在此咨询的问题。 问题是,我看到有很多人在使用ByteString的地方,而我认为只有Text才是合适的,因为JS...

18得票2回答
如何使用Aeson追踪回解析错误?【+答案】

我有一些大于1MB的简单JSON文件需要解析。我使用了Aeson,并且遵循fpcomplete在他们的Haskell学校中的教程(顺便说一句,谢谢你们)。由于一些文件(并非全部)失败了,我怀疑这些json文件不符合我所期望的结构。到目前为止,我收到的错误消息是:> Failed read...

16得票2回答
Aeson包中的decode和decode'函数有什么区别?

aeson包中的decode和decode'函数几乎相同,但它们在文档中有微妙的差异(这里仅发布有趣的文档部分):-- This function parses immediately, but defers conversion. See -- 'json' for details. de...

13得票3回答
Haskell,Aeson和JSON解析到自定义类型

继上一篇帖子后,我发现我完全无法继续了。我试图将JSON结构解析为自己的类型,不仅在如何解析数组方面卡住了,甚至不确定是否按照预期使用了Aeson库。非常感谢任何帮助。 代码: data Exif = Exif [(T.Text, ExifValue)] deriving (Show) d...

13得票1回答
是否可以列出派生通用泛型的记录数据类型中字段的名称和类型?

我知道对于派生自Data.Data的数据类型,constrFields会给出字段名列表。从 GHC.Generics 的文档中看来,我认为对于 Generic 也应该有相同的功能。(但可惜我没能找出如何实现)。 更具体地说,我正在寻找两件事: 列出所有记录字段 ...在Haskell程序内。我...

13得票2回答
使用lens向嵌套的Map中添加键和值

我正在努力解决使用Aeson lenses操作JSON时遇到的问题。我的任务很简单,只需向JSON中嵌套的对象添加一个键即可。我已经通过以下方式成功更改了现有的键:> :set -XOverloadedStrings > import Control.Lens > impor...

13得票1回答
无法将期望类型“Data.ByteString.Lazy.Internal.ByteString”与实际类型“[Char]”匹配

我正在尝试在我的Haskell代码中运行一个简单的Json解析器,我找到了Data.Aeson,它似乎是解决我的问题的可行方案。 我遵循了页面上的示例代码,并进行了一些小修改,这是我得到的结果: {-#LANGUAGE OverloadedStrings #-} import Data.A...

13得票2回答
使用Aeson在Haskell中解析嵌套JSON

我正在尝试从一个RESTful API解析JSON。返回的JSON是高度嵌套的,可能会或不会包含某些字段。以下是一些返回数据的示例:{ resultSet : { location : [{ desc : "Tuality Hospita...

12得票1回答
如何避免为Data.Tree创建一个孤立的FromJSON实例

我正在使用 aeson 包。我有一个数据类型,在其声明中使用了 Data.Tree。就像下面这个例子,只是更加复杂: data Foo = Foo { bat :: Text , xux :: Maybe Text ...