问题标签 [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 回答
318 浏览

haskell - Safe read in Aeson parseJSON

I'm using Aeson to parse json quote data from Yahoo's API. A quote might look like this:

(that's using this YQL query)

As you can see, the numbers are quoted. I can write a fromJSON implementation like this:

which is the same as what would be derived. Unfortunately this only works if I want Open, High, Low, etc, to be a Text type. The parse fails if I try and have any of those fields as Double, say.

I can write this:

to get it as anything I like, but this uses read, which is a partial function. How would I get the above functionality without using a partial function?

0 投票
0 回答
552 浏览

json - Aeson:将嵌套对象解析为(Map String MyShinyType)

我有带有“属性”字段的 json-schema 文件。

如您所见,属性不是数组,而是对象。我想用 aeson 解析这个结构Map String Schema

我现在的代码如下所示:

它不起作用。如果我打开泛型和自动派生 FromJSON 接口,Aeson 会像魅力一样解析属性,但我确实需要手动映射“$schema”和“type”字段。

我应该怎么做才能正确解析它?

伙计们,经过8个小时的睡眠,我终于意识到问题所在了!在我的模式中有 field "type": ["string", "null"],但解析器假定“类型”是字符串。谢谢大家的帮助:)

0 投票
1 回答
368 浏览

json - 如何在 Yesod 中正确使用 parseJsonBody?

我对 Haskell 比较陌生,我目前正在评估 Yesod 作为 REST 服务的基础。我希望能够使用 JSON 编码数据进行通信。

我有一个用于存储数据的类型类Persistent,它是ToJSONand的一个实例FromJSON。但是,我只能解码使用Yesod.Core.Json.parseJsonBody_.

如何parseJsonBody正确使用?我需要添加类型注释吗?如何从结果中提取解码的实例?请注意,我对 Haskell 还不是很熟悉。

0 投票
2 回答
1850 浏览

haskell - 如何使用 Aeson 追溯解析错误?[+回答]

我有要解析的大 (>1Mb)、简单的 JSON 文件。我使用了 Aeson,按照他们在 Haskell 学校的 fpcomplete 教程(谢谢你们,顺便说一句)。

由于某些文件(而不是全部)失败,我怀疑 json 文件不尊重我期望的结构。到目前为止我收到的错误消息是

我的问题是:

  • “我怎样才能得到更多关于哪里出了问题的细节?”

两个级别的调试/记录/跟踪构成了我的目标:

  • 识别解析器,即无法解析的数据类型(如 Parsec)
  • 用行/字符号识别数据
0 投票
2 回答
1688 浏览

haskell - Haskell Aeson JSON 库字节字符串问题

我无法找到将字符串转换为的函数或解决方法Data.ByteString.Lazy.Internal.ByteString

Aeson Json 库中的功能之一是decode并且具有以下描述:

我尝试在 Data.ByteString.Lazy.Char8 中使用 pack 函数,但它返回不同的 ByteString。有谁知道如何解决这个问题?

以下是我正在处理的示例:

我尝试使用decode (BSL.pack "{\"name\":\"Joe\",\"age\":12}") :: Maybe Person 并收到以下错误消息:

帮助!

0 投票
1 回答
565 浏览

haskell - 带有 HTTP 请求的 Haskell Aeson

我是 Haskell 的新手,在从 url 解析 JSON 时遇到了一些麻烦。我已经设法对事物的解析方面进行编码,并使用字符串进行了测试,它们工作正常。我遇到的麻烦是当我开始使用 IO 时。

我有以下代码:

我无法让主要工作。我想从 url 中自动检索 JSON。给我请求的movieAPIRequest主体(JSON)为IO String. convertToByteString接受一个字符串并转换为 Data.ByteString.Lazy.Char8.ByteString,因为 Aeson 中的decode函数接受一个字节串作为参数。使用上面的代码,我收到以下错误:

[1 of 1] 编译 MovieDataType(MovieDataType.hs,解释)

我已经尝试修复它,但不断变得不同,我无法理解。例如,这个告诉它期望的 IO MovieList 但解码应该返回一个 Maybe MovieList。

0 投票
2 回答
182 浏览

json - Aeson 使用的默认 ToJson 格式规范

有谁知道我在哪里可以找到关于 Aeson 的 ToJSON 如何将 ADT 转换为 Json 的文档?我正在将 Haskell 用于后端应用程序,并且我正在尝试在前端为另一种功能语言编写 JSON 解码器,因此我想使用相同的 JSON 格式,以便可以在它们之间发送消息。

0 投票
1 回答
157 浏览

haskell - Aeson 示例不起作用

我正在关注 Aeson库文档,但他们的示例似乎对我不起作用:

代码:

错误报告:

我在这里做错了吗?

0 投票
1 回答
359 浏览

haskell - 如何使用 aeson derivedJSON 省略空列表?

使用 aeson derivedJSON 可以很容易地省略 Nothing 值,例如:

我还想省略空列表以保持 JSON 紧凑。是否有一般使用deriveJSON省略空列表而不手动滚动实例的通用方法?

0 投票
2 回答
563 浏览

haskell - 使用 Aeson 泛型构造 JSON,以一个值作为键来保存另一个值

在尝试使用 Aeson JSON 库的同时玩弄 github gist API。我遇到了生成的 ToJSON 实例的问题,我不知道如何解决它。

我需要在里面包含一个值,并且与该值关联的键也需要是一个值,而不是预定义的键名。它更容易显示。所需的输出是,

文件名的值包含内容,但目前我得到了,

这不是我真正需要的。当前的代码是,

在有可能的假设下,我的数据结构需要如何查看才能获得所需的输出?..如果使用泛型无法做到这一点,我是如何使用 ToJSON 实例解决的(我不太清楚那里的结构也没有)?