问题标签 [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.
java - 杰克逊为什么我需要对子类进行 JsonTypeName 注释
在这个链接
我试图理解为什么我(可能)需要@JsonTypeName
子类(就像所有的'internet; sujests to put)如果它没有它就可以工作?
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 的正确方法是什么?
java - Jackson / Scala 不可变案例类:根据 JSON 中的其他值解析类
我有一个这样的 JSON:
我想将它加载到这样的类结构中:
诀窍是我想用某种取决于“switch”值的函数来转换传入的“type”字符串。最简单的例子是
但是,我似乎没有找到一种方法来在解析中(即在构造函数中或在@JsonCreator
静态方法中)访问 JSON 树的某些部分。
到目前为止,我唯一得到的基本上是一个全局变量,例如:
它有效,但显然相当难看:例如,您不能并行解析具有不同开关值的 2 个文件等。有更好的解决方案吗?例如,也许我可以访问某种 per-ObjectMapper 或 per-parsing 上下文,我可以在哪里存储此设置?
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 客户端返回非垃圾),而不必对可能更改的字符串执行正则表达式?
json - 我是否只是通过使用 Jackson JSON 反序列化来破坏 JVM 类型安全?
这就是我得到的:
同时,这甚至没有建立:
这里显然有问题。我在项目中使用的版本:
scalaVersion := "2.11.6"
libraryDependencies += "com.fasterxml.jackson.module" % "jackson-module-scala_2.11" % "2.7.3"
json - 使用 Jackson 将通用对象列表反序列化为正确的类型
我的 json 字符串在顶层有一个数组。例如:
我正在使用杰克逊反序列化它,如下所示:
问题是列表的值是作为对象HashMap
而不是Track
对象出现的,即使我指定这是一个通用的Track
s 列表。在控制台上:
如何确保杰克逊返回 Track 对象而不是 HashMap?
json - 用 Jackson 解析 scala 案例类
我的理解是,杰克逊DefaultScalaModule
应该能够开箱即用地阅读 scala 案例类。但只要我给它一个以上的字段,它似乎就会窒息:
有什么想法吗?
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)
...
我的案例类是否缺少任何注释?
scala - 将 JSON 反序列化为 Map[String, Option[String]] 时选项类型信息丢失
印刷
反序列化为 Map[String, Option[String]] 的最佳方法是什么?
json - 使用 Jackson 将 Int 的映射反序列化为 Tuple
我有一门看起来像
我正在使用 Jackson 序列化对象并将其存储在数据库中并读回它们。但是,当我反序列化它时,地图是Map[String, List(Int, Int)]
.
我可以通过使用正确反序列化密钥,
@JsonDeserialize(keyAs: classOf[Integer])
但无法正确反序列化值。