小编bru*_*ito的帖子

我只是通过使用Jackson JSON反序列化来破坏JVM类型的安全性吗?

这就是我得到的:

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.scala.DefaultScalaModuleobject 

AppStart extends App {
  val mapper = new ObjectMapper()
  mapper.registerModule(DefaultScalaModule)

  val json = """{"id":"AB","stuff":"whatever"}"""
  val obj = mapper.readValue(json, classOf[TestClass])

  println(obj.id.get) // prints AB !!!
}

case class TestClass(id: Option[Int] = None, stuff: Option[String] = None)
Run Code Online (Sandbox Code Playgroud)

同时,这甚至不会建立:

val bad: Option[Int] = "AB"
Run Code Online (Sandbox Code Playgroud)

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

scalaVersion:=“ 2.11.6”

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

json jvm scala type-safety jackson-module-scala

5
推荐指数
1
解决办法
204
查看次数

标签 统计

jackson-module-scala ×1

json ×1

jvm ×1

scala ×1

type-safety ×1