问题标签 [circe]

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 投票
2 回答
1793 浏览

json - 使用 Argonaut 或 Circe 从不完整的 JSON 更新案例类

给定一个不完整的 json(缺少某些字段),我需要从一个案例类实例(任何需要DecodeJson的 s 隐式派生)创建一个更新的实例。如何使用 Argonaut(最好)或 Circe(如果我必须)来完成?

例子:

我很确定我必须将 json 解析为 json AST,然后将其转换为 Shapeless LabelledGeneric,然后以某种方式使用 Shapeless update 来更新案例类实例。


编辑 2

在阅读了 Shapeless 源代码后,我发现我可以生成自己的“默认”对象。我设法创建了一个解决方案,该解决方案需要在解析 json 时存在案例类的实例。我希望避免这种情况,而是稍后提供实例。无论如何,它是:

这产生Person(Old Name Kept,42).

0 投票
2 回答
3959 浏览

json - Scala Circe 与泛型

我正在尝试使用 scala json 库 Circe,将其包装在一个简单的特征中以提供与 json 的转换,我有以下内容:

这样做的目的是简单地能够使用任何对象调用 JsonConverter 并将其转换为/从 json 转换jsonConverter.toJson(0) must equalTo("0"),但是当我尝试编译它时,我得到以下信息:

我当然可以拥有一个我打算通过转换器继承的所有内容的类,但我的印象是 circe 可以自动生成编码器/解码器?

0 投票
3 回答
5739 浏览

json - 用circe转换Json

假设以下 json 有效负载

我如何将其转换为

其中“B”是从可用选项中随机选择的?

这是我到目前为止所得到的:

这将删除未使用的“强制”字段并插入一个空的“值”字段。但是,从数组中获取一个随机值并将其放在“值”中却让我无法理解。

- 编辑

我尝试使用 hcursor 使上述内容更清晰(无论如何对我来说)

(我在上面的例子中使用 circe 0.5.1)

0 投票
5 回答
4262 浏览

json - 用 circe 重命名 JSON 字段

我想在我的案例类和 JSON 中使用不同的字段名称,因此我需要一种舒适的方式来重命名编码和解码。

有人有好的解决方案吗?

0 投票
1 回答
511 浏览

json - Circe 特征字段不包含在 json 中

我有一个简单的特征,在某些案例类中混合在一起。当通过 circe 将该类的实例转换为 JSON 时,我意识到 trait 中具有默认值的字段不包含在 JSON 字符串中。

io.circe.generic.auto._用于编码

举例说明它:

这使:{"id":"testId"}

所以str不包含我期望的时间戳和版本值

我假设它使用编码器进行案例类并且只是跳过一个特征。我还需要做什么才能包含这些字段?

在不同版本的 circe(0.3.0 和 0.6.0)中试过这个

我也可以稍后从 JSON 字符串中解码这些字段(可以有其他值),还是我应该更好地保留这些字段抽象并在案例类中使用默认参数?

0 投票
1 回答
928 浏览

json - 使用 Circe 将包含 HList 的案例类解析为 JSON 字符串

我在 Scala 中做一件事。我有以下案例类:

我想使用Circe获得这种类型的 JSON 表示。我还想将生成的 JSON 字符串映射回类型。

circe-shapes 模块会自动推导 HList,从 HList 到 JSON 并返回很容易。看这个例子:

包含“标准”类型的案例类也很简单:

明确 HList 的类型可以创造奇迹,但这有点违背 HList 的目的:

Circe 可以解码任意 HList 吗?

0 投票
1 回答
627 浏览

json - 使用 Circe 和单片眼镜解析 Json

我已经写了这个示例代码

但这不会编译

我也试过

但这也失败了

我很惊讶。当我可以做 aisRight那么为什么编译器说我不能做 a right

这是我的 build.sbt 文件

0 投票
1 回答
998 浏览

scala - Generic json decoder trait with Circe implementation

I have a trait used to inject json decoder as dependency to components of my project:

When I try to implement it with Circe:

and run:

it does not compile with error:

I tried to add ClassTag, TypeTag or WeakTypeTag context bounds for T but it still can not find implicit value for Decoder.

I can not add Decoder context bound or implicit parameter to JsonDecoder.apply because components what use it should not know about implementation details.

How should I provide implicit io.circe.Decoder? May be there is some way to get it from TypeTag?

0 投票
1 回答
1339 浏览

json - Circe 对 AnyVal 类型的泛型推导

我想为值类派生编码器实例。使用该semiauto机制,我无法派生嵌套类。

想象下面的案例类结构

在菊石外壳中(还添加 Recipient 案例类)

Email现在为预期的结果派生解码器

派生一个Encoder[Recipient]不起作用

我想做的是派生一个Encoder[Recipient.Email]返回包装类型的。如果我明确派生编解码器,这个小片段就可以工作。

我仍然无法得出一个Encoder[Recipient]

有没有人做过类似的事情?

在此先感谢,穆基

0 投票
1 回答
1597 浏览

scala - 将 Json4S 迁移到 Circe

我有以下用 json4s 编写的代码,可以编译并正常工作

我写了以下Circe代码

但我得到了错误