问题标签 [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 投票
1 回答
4626 浏览

scala - 使用 Http4s 的 Circe 编码器和解码器

我正在尝试使用 http4s、circe 和 http4s-circe。

下面我尝试使用 circe 的自动推导功能。

我得到这两个编译器错误的多个实例

0 投票
2 回答
2357 浏览

json - 如何通过 Circe 修改 json 的值类型

我需要捕获一个 json 的 int 值,并通过某个映射表将其更改为字符串值。我使用 circe,我知道如何在不更改值类型的情况下修改值,例如:

输出是:

但是,实际上,我需要做的是将 int 值更改为某个字符串值,即 1 ->“A”,2 ->“B”,等等,问题是:“修改”方法只接受一个函数返回相同类型的输入值,所以,我不能编码如下:

我的预期输出可能如下所示:

谁能给我一个解决方法(基于Circe)?

0 投票
3 回答
8095 浏览

json - Circe 和 Scala 的枚举类型

我正试图绕过Circe。

所以,这是我得到的模型:

我想要

a) 将此简单示例编码为 JSON 字符串

b) 将生成的 JSON 映射回 Product 案例类。


我自己的尝试并没有让我走得太远:

导致编译时错误

我不知道为什么会抛出这个异常以及解决方案会是什么样子。也许是枚举类型的用法?但是,我只是猜测。

0 投票
2 回答
7256 浏览

json - 如何在不消除对象歧义的情况下使用 circe 解码 ADT

假设我有这样的 ADT:

circeDecoder[Event]中实例的默认泛型派生期望输入 JSON 包含一个包装器对象,该对象指示表示哪个案例类:

这种行为意味着如果两个或多个案例类具有相同的成员名称,我们永远不必担心歧义,但这并不总是我们想要的——有时我们知道展开的编码是明确的,或者我们想通过指定顺序来消除歧义每个案例类都应该尝试,否则我们根本不在乎。

如何Event在没有包装器的情况下编码和解码我的 ADT(最好不必从头开始编写我的编码器和解码器)?

(这个问题经常出现——例如今天早上在 Gitter 上与 Igor Mazor 的讨论。)

0 投票
2 回答
844 浏览

scala - scalaz.Maybe的Circe解码器

这是一个简单的 finch 服务器,使用 circe 作为解码器:

将 更改myValueOption开箱即用的作品,给出与上述代码相同的结果。但是,将其更改为scalaz.Maybe

结果是:

Response("HTTP/1.1 Status(400)"): {"message":"body 无法转换为 Test: CNil: El(DownField(myValue),true,false)."}

我应该如何实现所需的编码器/解码器?

0 投票
3 回答
16001 浏览

json - 如何使用 Circe 在 Scala 中解码 JSON 列表/数组

我有代码片段

其中 Clip 是字符串和数字的简单案例类。传入的 Json 应包含一个带有“项目”数组的 json 对象“播放列表”,其中每个项目都是一个剪辑。所以json应该看起来像

使用上面的代码片段,我得到了编译错误:

我究竟做错了什么?如何使用 circe 为简单项目列表/数组设置解码?

0 投票
1 回答
388 浏览

json - Circe:高效解码多级 ADT

我想用 Circe 解码以下 ADT:

如您所见,有一个 parent 类型PaymentType,它有一些直接继承者和另一个密封 trait family CreditCard。现在解码是这样完成的:

我不喜欢的是解码器,尤其是当遇到基于信用卡的支付类型时PaymentType,我需要在完全正常的情况下创建一个额外且不必要的实例。DecodingFailure我们已经将 99.9% 的 CPU 用于 JSON 处理,而且看起来不太对劲。要么是糟糕的 ADT 设计,要么 Circe 应该有办法更好地处理这个问题。有任何想法吗?

0 投票
2 回答
5608 浏览

json - 使用 circe 将 Scala None 编码为 JSON 值

假设我有以下案例类需要使用 circe 序列化为 JSON 对象:

现在我需要编码val b = B(None, Some(A("a", Some("aa")), 5)为 JSON 但我希望能够控制它是否输出为

或者

使用PrinterdropNullKeys配置,例如b.asJson.noSpaces.copy(dropNullKeys = true)将导致None从输出中省略 s,而将其设置为false会将 s 编码Nonenull另请参见此问题)。但是如何在每个字段的基础上控制这个设置呢?

0 投票
0 回答
239 浏览

scala - 从递归类型语法实例化类型

鉴于这种递归类型语法:

和实例Seq[Field]

从类型语法实例化具体类是否可行?

IE:

我想Shapeless可以用于此,就像在 json-library Circe中一样。


另请参见使用类型别名描述递归语法

0 投票
1 回答
123 浏览

scala - 如何知道一个类可以编码为 Circe Json

假设我有一个将泛型类作为参数的方法。这个泛型必须实现什么才能被 Circe 编码?即我们怎么知道这个类定义了一个编码器?

谢谢