问题标签 [argonaut]
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 - Circe 列表反序列化与最佳尝试和错误报告
我正在使用 Circe 反序列化包含列表的 json。有时 json 列表中的一些项目已损坏,这会导致整个反序列化失败。相反,我希望 Circe 做出最佳尝试,并返回所有成功反序列化的列表项的列表,以及损坏项的错误列表。这在 Circe 是如何做到最好的?
具体来说,假设我正在尝试反序列化:
我正在这样做:
它工作正常,并正确反序列化:
但是,如果我现在损坏了 json 列表中的一个项目(通过更改其中一个"dog"
键来"doggg"
表示),那么整个反序列化将失败 - 它没有给我未损坏Clip
项目的列表,它只是告诉我它失败了。
因此,List[Clip]
我不想反序列化 into ,而是反序列化 into List[Try[Clip]]
,其中每个项目要么是 like Success(Clip(xyz,abc,spaniel))
,要么是Failure(ErrorDescriptionForThatItem)
.
我能够在 Argonaut 中实现这一点(使用一些相当难看的代码),但无法弄清楚 Circe 中的语法。实现这一目标的最佳方法是什么?谢谢!
scala - 如何在使用 Argonaut 和自定义编解码器解析 JSON 时获得更好的错误消息
我正在使用 Argonaut 通过我的自定义编解码器解析 JSON。我的代码如下所示:
但是,我从未收到任何有用的错误消息。我得到的只是java.lang.RuntimeException: Unable to parse MyClass json: LeftProjection(Left(String: CursorHistory(List())))
。
处理解码错误的正确方法是什么?
编辑:我的问题不是如何处理提供的错误消息。如果 Argonaut 可以说“位置 X 解析错误,意外成员 y”或类似的话,那就太好了。那可能吗?
json - 收集 JSON 数组中的元素
我和 Argonaut 有很大的关系。我需要收集 JSON 数组中的所有元素。例如,我在 JSON 中有这些数据。
然后我需要将所有name
值收集到列表中。所以我得到了这个
这意味着我需要遍历数组,所以我选择 Argonaut 库来执行此操作。但是很难知道 API 在 Argonaut 中是如何工作的。到目前为止,我有这个,
但我不确定如何获得价值。请我在这里需要建议。
json - purescript-argonaut:解码任意键值 json
有没有办法解码任意json(例如:我们在编译时不知道密钥)?
比如我需要解析下面的json:
其中键的名称和数量在编译时是未知的,并且可能会根据 GET 请求而改变。目标基本上是将其解码为一种Map String (Array String)
类型
有没有办法使用 purescript-argonaut 做到这一点?
scala - 将 Argonaut 元组数量提高到 23
我正在尝试使用 arity 23 实现 CodecJson。它看起来像这样:
但是,我在所有字段上都收到类型错误,例如:
我如何转换x.a
为 Json - 等等所有其他字段/类型?
谢谢!
arrays - 如何使用 argonaut 将此 JSON 数组转换为实际数组?
我在一个单独的文件中有这个 JSON:
我正在尝试遵循他们的快速入门,但它甚至没有找到“decodeOption”或“Parse.parse”或其他任何东西。我特别迷茫?
所以我不完全确定如何完成我想做的事情。我试过遵循这个: Parse JSON array using Scala Argonaut
以及他们网站上的入门指南,但似乎都没有像这里那样处理数组情况的示例。此外,SO 帖子中的代码示例 codec3 显示为不存在,所以我也很困惑。
我只想要一个查询数组作为文件中的字符串,为什么没有像在 python 中那样的简单方法呢?
json - Scala Argonaut 在列表中折叠?
我对 Argonaut 很陌生(我被迫使用它,因为代码库较旧,使用的是 scalaz 的旧版本,我们无意更新它,因为我们正在从头开始重写这个过时的代码),我'正在尝试找到一种将一些数据转储到 JSON 中的方法。
我有一个名为Magnitude
. 为简单起见,将其定义为:
case class Magnitude(bandname: String)
我想要的是一个接收 aList[Magnitude]
和输出的函数Json
,我可以将它们与其他Json
.
现在,我正在做:
然后说我有一个实例化List[Magnitude]
:
当我打电话时magnitudeFields(magList)
:
我只收到bandName: K
和前面的其他三个条目不是函数输出的 JSON 的一部分:
而不是我想要的,即:
任何帮助将不胜感激。jEmptyObject
我怀疑我在使用默认值时做错了什么,foldLeft
并且可能需要jArray
在某些时候使用类似的东西(函数返回List[Json]
,但我不确定我应该怎么做。
purescript - 使用 Argonaut 在 PureScript 中解析 JSON
我在 PureScript 中使用 argonaut 库对 JSON 进行解码和编码。我无法编写一个实现来解码和编码这样的 json 字段:
“字段”:[3,“文本”]
这是一个具有不同数据类型的数组。如何在 argonaut 库中实例化它?