问题标签 [jackson-module-scala]

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 回答
13681 浏览

java - 杰克逊为什么我需要对子类进行 JsonTypeName 注释

这个链接

我试图理解为什么我(可能)需要@JsonTypeName子类(就像所有的'internet; sujests to put)如果它没有它就可以工作

0 投票
0 回答
701 浏览

mongodb - 将 mongo 文档的 DateField 反序列化为 java.util.Date

我在我的一个新项目中使用 mongo-scala 组合,它需要反序列化带有日期字段的 mongo 文档

mongo 文档示例

我正在使用 mongo-scala-driver 来查询集合,并将document.toJson()json 字符串作为

我需要将此 json 字符串反序列化为我的 scala 案例类

我在解析json后使用json4s-mongo提取scala对象

返回的错误是

进一步看,我注意到 json4s-mongo 不处理 $date nameField 而是处理 $dt namefield 。

在此处输入图像描述

上述方法对于 ObjectId 和 String 数据类型非常有效,但仅对 DateField 给出错误。

反序列化 DateField 的正确方法是什么?

0 投票
1 回答
524 浏览

java - Jackson / Scala 不可变案例类:根据 JSON 中的其他值解析类

我有一个这样的 JSON:

我想将它加载到这样的类结构中:

诀窍是我想用某种取决于“switch”值的函数来转换传入的“type”字符串。最简单的例子是

但是,我似乎没有找到一种方法来在解析中(即在构造函数中或在@JsonCreator静态方法中)访问 JSON 树的某些部分。

到目前为止,我唯一得到的基本上是一个全局变量,例如:

它有效,但显然相当难看:例如,您不能并行解析具有不同开关值的 2 个文件等。有更好的解决方案吗?例如,也许我可以访问某种 per-ObjectMapper 或 per-parsing 上下文,我可以在哪里存储此设置?

0 投票
1 回答
234 浏览

jackson - 喷雾拒绝处理是否疯狂......还是我?

这是我不断增长validationRejectionHandler的喷雾项目:

在我看来,这段令人费解的代码——用正则表达式来破译各种类型的错误——是在 Spray 中处理拒绝的方法,这样它就不会向 API 客户端吐回这样的丑陋消息,这对我来说似乎很疯狂:

{ "message": "在 [Source: {\n \"source\": \"k\",\n \"values\": [\n { \n \"dt\": \"2015-10-15T16:27:42.014Z\",\n \"id\":\"0022A3000004E6E1\",\n \n \"属性\":\"a \",\n \"_id\": \"45809haoua\",\n \"__id\": \"a2p49t7ya4wop9h\",\n \"___id\": \"q2ph84yhtq4pthqg\"\n }]\n }; line: 12, column: 9] (通过引用链:io.keenhome.device.models.DatumList[\"values\"]->com.fasterxml.jackson.module.scala.deser.BuilderWrapper[0]) " }

如何处理这些错误消息(例如向 API 客户端返回非垃圾),而不必对可能更改的字符串执行正则表达式?

0 投票
2 回答
278 浏览

json - 我是否只是通过使用 Jackson JSON 反序列化来破坏 JVM 类型安全?

这就是我得到的:

同时,这甚至没有建立:

这里显然有问题。我在项目中使用的版本:

scalaVersion := "2.11.6"

libraryDependencies += "com.fasterxml.jackson.module" % "jackson-module-scala_2.11" % "2.7.3"

0 投票
0 回答
886 浏览

json - 使用 Jackson 将通用对象列表反序列化为正确的类型

我的 json 字符串在顶层有一个数组。例如:

我正在使用杰克逊反序列化它,如下所示:

问题是列表的值是作为对象HashMap而不是Track对象出现的,即使我指定这是一个通用的Tracks 列表。在控制台上:

如何确保杰克逊返回 Track 对象而不是 HashMap?

0 投票
1 回答
398 浏览

json - 用 Jackson 解析 scala 案例类

我的理解是,杰克逊DefaultScalaModule应该能够开箱即用地阅读 scala 案例类。但只要我给它一个以上的字段,它似乎就会窒息:

有什么想法吗?

0 投票
0 回答
126 浏览

scala - jackson scala xml无法反序列化

我有以下代码

我正在尝试将notificationDetails字段从以下 json 反序列化为通知类型列表。

我收到以下错误

Caused by: org.codehaus.jackson.map.JsonMappingException: Can not construct instance of Notification, problem: abstract types can only be instantiated with additional type information at [Source: org.eclipse.jetty.server.HttpInput@4afa6dff; line: 1, column: 281] (through reference chain: Monitor["monitorRules"]->MonitorRules["notificationDetails"]) at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163) at org.codehaus.jackson.map.deser.StdDeserializationContext.instantiationException(StdDeserializationContext.java:233) ...

我的案例类是否缺少任何注释?

0 投票
0 回答
94 浏览

scala - 将 JSON 反序列化为 Map[String, Option[String]] 时选项类型信息丢失

印刷

反序列化为 Map[String, Option[String]] 的最佳方法是什么?

0 投票
0 回答
416 浏览

json - 使用 Jackson 将 Int 的映射反序列化为 Tuple

我有一门看起来像

我正在使用 Jackson 序列化对象并将其存储在数据库中并读回它们。但是,当我反序列化它时,地图是Map[String, List(Int, Int)].

我可以通过使用正确反序列化密钥, @JsonDeserialize(keyAs: classOf[Integer]) 但无法正确反序列化值。