在java中将json字符串解析为scala case类

在java中将json字符串解析为scala case类,java,scala,spring-mvc,jackson,case-class,Java,Scala,Spring Mvc,Jackson,Case Class,我有一个小型spring(mvc)web应用程序。此应用程序依赖于一个scala模块,该模块具有一个case类message命令。我想使用Jackson将JSON字符串转换为MessageCommand Case类 这可能吗 我使用的是Spring 4、Jackson asl 1.9、Scala 2.11案例类。当然可以。但您需要在case类中调整一些内容: case class Message(@BeanProperty var num:Int, @BeanProperty var name:

我有一个小型spring(mvc)web应用程序。此应用程序依赖于一个scala模块,该模块具有一个
case类
message命令。我想使用
Jackson
将JSON字符串转换为MessageCommand Case类

这可能吗


我使用的是Spring 4、Jackson asl 1.9、Scala 2.11案例类。

当然可以。但您需要在case类中调整一些内容:

case class Message(@BeanProperty var num:Int, @BeanProperty var name:String){
    def this() = this(-1,null)
}

import org.codehaus.jackson.map.ObjectMapper
import scala.beans.BeanProperty

val mapper = new ObjectMapper
val json = """{"num":1,"name":"Di Caprio"}"""

scala> val user = mapper.readValue(json, classOf[Message])
user: Message = Message(1,Di Caprio)

如果您不能调整case类,那么它会变得有点困难和不整洁

如果我不能编辑scala类怎么办?我是否需要编写一个简单的java类,然后手动将值从java类设置到case类中?我在谷歌上搜索发现:不确定它有多好。我必须用java,而不是scala。我的意思是,我需要用java解析一个字符串,并将其转换为Scala Case classI,应用您提供的答案并更改Scala代码。如果你是用Java做的,那就很好了。事情仍然是一样的:
ObjectMapper m=newObjectMapper();m、 readValue(json,Message.class)
:)