问题标签 [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.
json - 如何在circe JSON序列化中避免科学记数法
假设我有下一个案例类:
我想将 Person 类的实例序列化为 JSON,所以当我评估asJson
from circe 时,我会得到科学计数法的结果:
为什么会发生这种情况?我认为原因是因为默认将字符串BigDecimal
自动格式化为科学计数法。
我能做些什么来避免这种情况?可能正在创建另一种类型,它从BigDecimal
?toString
json - 在 Scala 中使用 Akka Http 和 Circe 解码 JSON
我正在尝试创建 Akka Http REST post 端点,将 JSON 对象映射到定义的案例类
JSON是类型
现在我想将整个 JSON 映射到案例类中定义的 blob 的“json_data”
我知道 .map(_.asJson) 会将 json 映射到 JobEntity,如果不是这样,请纠正我
如何将整个 JSON 映射到 json_data。
json - 使用 Akka HTTP 将 Scala 案例类映射到 JSON
我正在尝试使用 akka Http 将案例类映射到 JSON
然后用于路由
这会将我的 JSON 映射到 JobEntity 但问题在于我的案例类所在的另一个用例
JsonRaw 需要将 json 作为 blob 传递,为此我正在努力解决如何将整个 json 映射到 case 类而不是其他参数。
json - 如何在 Circe 中创建排除编码器?
在我的应用程序中,我需要在空时将一些Option
s 编码为null
空,而在空时将其他编码排除。基于Encoder
this 的签名似乎不可能用于特殊类型的 wrapping Option
。有没有好的方法来处理这个?
编辑:在其他答案中(例如使用 circe 将 Scala None 编码为 JSON 值)这个问题已经被触及,但没有合适的解决方案。在提供的所有答案中,这是一个必须处理的明确解决方法。我正在寻找一个更通用的解决方案。这最终似乎是 Circe 中缺少的功能,并且(根据@travis-brown)将在不久的将来得到解决。
json - 如何为 circe 创建依赖于消息中字段的编码器/解码器
我尝试使用 Circle 的用例如下。给定一个 JSON 消息流,我想在操作上匹配并将消息从适当的类型转换为适当的类型。下面的代码显示了所有细节。然而,代码 des 无法编译,因为它需要不同 ResponseMessag:es 的隐式编码器。
为什么使用
import io.circe.generic.auto._
获取不同ResponseMessage
类型的编码器和解码器然后只编写自定义是不够的ResponseMessage
?如何更改下面的示例以使测试通过? 有没有办法不必将ResponseOpType 的不同值解码为字符串,我想要一个trait
层次结构,但它以错误的格式解码(作为 JSON 对象而不仅仅是纯字符串)?
json - 使用 circe 预处理点符号样式字段
我有一些 json,其中包含一些字段,这些字段被展平为 bson-ish 格式,如{"foo.bar" : "bash"}
. 我想将其转换为以下表示{"foo" : { "bar" : "bash"}}
,并想知道我会在哪里进行这样的操作。使问题复杂化的是,可能有多个此类字段需要正确合并,例如{"foo.bar" : "a", "foo.bash" : "b", "foo.baz" : "c"}
-> {"foo" : { "bar" : "a", "bash" : "b", "baz" : "c"}}
。
json - 我的副产品编码不明确
这个问题最近出现了几次,所以我在这里进行常见问题解答。假设我有一些这样的案例类:
我想使用circe和 Shapeless coproducts 将可能是其中任何一个的值编码为 JSON。
乍一看,这看起来不错:
但问题是我永远无法解码包含B
元素的副产品,因为任何可以解码为的有效 JSON 文档B
也可以解码为A
,并且 circe-shapes 提供的副产品解码器按照它们出现在副产品。
如何在我的编码中消除我的副产品元素的歧义?
json - 在 http4s 上运行时,使用 Circe 将递归数据结构编码为 Json
我正在构建一个非常简单的服务,它应该返回一个通过递归案例类定义的树状结构:
但由于某种原因,我不断收到以下编译错误:
错误:(24, 70) 找不到参数编码器的隐含值:io.circe.Encoder[Seq[com.ansarada.ds.docviewer.server.Main.Node]]
隐式验证节点编码器:EntityEncoder[Seq[Node]] = jsonEncoderOf[序列[节点]]错误:(24, 70) 方法 jsonEncoderOf 的参数不足:(隐式编码器:io.circe.Encoder[Seq[com.ansarada.ds.docviewer.server.Main.Node]])org.http4s.EntityEncoder[Seq[ com.ansarada.ds.docviewer.server.Main.Node]]。未指定值参数编码器。隐式验证节点编码器:EntityEncoder[Seq[Node]] = jsonEncoderOf[Seq[Node]]
代码被编译,一旦我删除了一个子元素定义并将一个节点变成一个平面对象:
任何人都可以帮我为嵌套孩子的情况定义正确的 Json 编码器吗?
完整代码:
scala - 无法为包含具有自定义 Key 类型的 Map 的类型生成可索引
我正在使用 scala 2.11.11、elastic4s 5.4.5 和 elastic4s-circe 5.4.5
这不会编译:
根据文档:
只需在下面为您选择的库添加导入,然后在范围内使用这些隐式,您现在可以将您喜欢的任何类型传递给 doc,并且 Indexable 将自动派生。
使用import io.circe.generic.auto._
和import com.sksamuel.elastic4s.circe._
用于 elastic4s-circe。
我错过了什么?
scala - Circe 子类类型的编码器/解码器
鉴于以下 ADT
其中值type
用于解码要实例化的实例。
如何自动(或半自动)派生编码器和解码器,以便获得以下行为:
传统的做法
在两个方面失败:
- 它不序列化值
type
。 - 不允许
MavenGroup("test", Seq("a", "b")).asJson
。它只允许第二个选择 whereMavenGroup
is first cast toGroupRepository
。
我能想出的最佳解决方案是:
但是它有几个缺点:
- 编码器是手动指定的。
- 每个子类型的解码器没有被缓存,因为需要显式传递编码器。