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

java - How to encode scala case class to json with any as parameter type of case class?

I have a scala case class as follows

I am using scala circe library for encoding this object to Json. The code which i am using is

It is giving me following error during compilation.

If i change the type of case class attribute quality to type String then it works fine.

How to encode case class with Any type in attribute

Thanks

0 投票
1 回答
1181 浏览

json - 使用 Circe 将 JSON 数组解析为案例类

让我们使用这个 JSON 示例:

没什么特别的,其实这可以简单的解析成一个case类:

这很好用...


问题

我实际上知道每个数组的大小都是 2,并且

  • 第一个元素->它是“率”
  • 第二个元素->它是“数量”

我想解决这个问题Circe并将其解析为一个类结构,如:

我试过写我的编码器和解码器:

但它总是因错误而失败:

为什么?我究竟做错了什么?

0 投票
1 回答
4040 浏览

json - 在 Scala 中使用 circe 解码结构化 JSON 数组

假设我需要解码如下所示的 JSON 数组,其中开头有几个字段,一些任意数量的同质元素,然后是其他一些字段:

我不知道为什么有人会选择这样对他们的数据进行编码,但是人们会做一些奇怪的事情,假设在这种情况下我只需要处理它。

我想将此 JSON 解码为这样的案例类:

我们可以这样写:

…有效:

但是,这太可怕了。错误消息也完全没用:

当然有一种方法可以做到这一点,它不涉及在光标和值之间来回切换Json,在我们的错误消息中丢弃历史,并且通常只是令人眼花缭乱?


一些上下文:关于编写像这样的自定义 JSON 数组解码器的问题经常出现(例如今天早上)。如何做到这一点的具体细节可能会在即将发布的 circe 版本中发生变化(尽管 API 会类似;有关一些细节,请参阅这个实验项目),所以我真的不想花很多时间添加一个像这样的文档示例,但它出现的足够多,我认为它确实值得堆栈溢出问答。

0 投票
1 回答
1982 浏览

scala - 字段不完整时使用 Circe 解码 Json

我有一个 json 格式的成绩单,里面有一堆单词

我一直在使用 Circe 对 Json 进行编码/解码。在这种特殊情况下:

我的 ADT 看起来像:

有时单词有“strike”或“highlight”之类的键,但很可能没有。如果没有,我会收到以下错误消息。

当“单词”没有所有字段时,正确解码它的最佳方法是什么?

0 投票
2 回答
4633 浏览

scala - 从 Circe 创建 Json 对象,其中值可以是字符串或列表

我想创建一个带有 circe 的 Json 对象,其中值可以是字符串或列表,例如:

但是,如果我这样做

它失败了

0 投票
2 回答
827 浏览

json - jackson-module-scala 将 Map 中的长键序列化/反序列化为字符串

使用jackson-module-Scala,我尝试使用Long as key序列化和反序列化具有内部 Map 的对象,但是 Jackson 将 key 序列化为 String 并且如果忽略 Class 中定义的类型,则不会将其反序列化为 Long 。是BUG吗?难道我做错了什么?

断言失败并且 println(serialized) 语句的输出是:

奇怪的是打印newObj和innerMap是一样的:

正如@Varren 所说,问题确实出在断言中。但:

断言结果:

我搞不清楚了!地图必须是 Map[Long,Long]

由于 Spark 依赖项,我必须使用此版本:

  • 斯卡拉 2.11.11
  • jackson-module-scala 2.6.5 并使用 2.9.1 版本进行测试,结果相同。

其他信息:

0 投票
0 回答
61 浏览

scala - 有没有更好的方法从 circe 获取 Json 元素

我是 circe api 的新用户,目前我使用以下代码从 JSON 文档中获取元素:

如果有更好的建议,它看起来应该使用更多的代码?

0 投票
1 回答
1234 浏览

json - 用 Circe 解析 Json 数组

我是 Circe 的初学者,我想从这个 JSon 中检索信息

我不明白这段代码如何无法捕获有关“作者”的信息

你有想法吗 ?

预先感谢,

0 投票
1 回答
114 浏览

scala - 从 Circe 获取底层 HList

是否可以从 JSON 中获取底层的 hlist 表示circe形式?本质上将案例类转换为 HList

注意:我知道这可以直接使用 shapeless 实现,我想尝试circe's基于宏的解析器,因为我遇到了 shapeless 的性能问题。

0 投票
2 回答
1407 浏览

circe - Http4s EntityDecoder 不是为简单案例类自动派生的

我收到此错误:

对于以下案例类:

遇到POST代码错误:

具有以下POST主体:

我认为当身体被转换为时会发生这种UserProfile情况req.as[UserProfile]

但是,这是一个普通的案例类,EntityDecoder应该是自动派生的!我知道akka-http会!

有什么想法/建议吗?

请注意: Http4sVersion = "0.18.0-M4"circe version "0.9.0-M1"