参考[Stackoverflow]Scala:将map转换为case类我尝试复制其中一个响应,我看到以下错误:
<代码>无法构造com的实例。实践斯卡拉。Test“(不存在任何创建者,如默认构造):无法从[源:未知;行:-1,列:-1]处的对象值(无委托或基于属性的创建者)反序列化
代码:
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.scala.ScalaObjectMapper
case class Test(k1: Int, k2: String, k3: String)
object Workspace {
def fromMap[T](map: Map[String, Any])(implicit m: Manifest[T]): T = {
val mapper = new ObjectMapper() with ScalaObjectMapper
mapper.convertValue(map)
}
def main(args: Array[String]): Unit = {
val myMap = Map("k1" -> 1, "k2" -> "val2", "k3" -> "val3")
val result = fromMap[Test](myMap)
println(result)
}
}
这个错误说明了什么?我错过了什么吗?
您需要在映射器上注册DefaultScalaModule:
// With 2.10 and later
val mapper = JsonMapper.builder()
.addModule(DefaultScalaModule)
.build()
// versions before 2.10 (also support for later 2.x but not 3.0)
val mapper = new ObjectMapper()
mapper.registerModule(DefaultScalaModule)
来源:https://github.com/FasterXML/jackson-module-scala#usage
有没有更好的方法来转换贴图
我有一个带有对象的数组()。对象包含一个 orgId 和一个 orgName。 有没有一种简便的方法可以将它转换成< code>Map[Long,String] (orgId,orgName)
假设我有以下地图: 我想根据以上内容获得。我目前的解决方案似乎太长太可怕了。 一定有更好的办法,不是吗?
我在Firebase中有以下数据: 在Flutter中,我有以下两个对象: 我正在尝试将Firebase中的集合嵌套贴图转换为Flatter中的列表,但遇到了问题。在Flatter中将具有贴图字段的贴图对象转换为列表的最佳方法是什么? 我知道我在处理map对象时遇到了问题,根据我的方法,我收到了不同的错误,但通常类似于以下情况之一: 错误1:“键入“\u InternalLinkedHashMap
在我的项目中,我有一个Akka层,它返回一个,接收Future的部分是Java风格。 团队中的人不了解Scala,他们宁愿使用,因为他们更了解Java 8 API。 有没有什么好方法可以将一个转换成一个?。 显然是以非阻塞的方式。 当做
问题内容: 我目前正在开发一个Scala应用程序,该应用程序利用Spring-Boot和Swagger发送和接收REST调用。 Swagger和Spring-Boot是纯Java项目,与Scala的兼容性有限,但是我似乎找到了解决该问题的方法。 由于Spring- Boot和Swagger将请求作为Java对象处理(需要使用setter和getter才能工作),因此我必须将请求视为Java对象,然