2014-11-24 75 views
0

我有一个小型弹簧(mvc)web应用程序。此应用程序依赖于一个Scala模块,它具有一个case class MessageCommand。我想使用Jackson将JSON字符串转换为MessageCommand Case类。将json字符串解析为java中的scala案例类

这可能吗?

我正在使用Spring 4,Jackson-asl 1.9,Scala 2.11 Case类。

回答

2

好吧,你可以。但是,你需要调整的情况下,类中的一些事情:

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) 

如果不能调整的情况下类,那么它变得有点困难的,凌乱

+1

有何如果我不能编辑斯卡拉类的方式吗?我是否需要编写一个简单的java类,然后手动将值设置为java类的case类? – 2014-11-24 07:21:54

+0

我GOOGLE了,发现这个:https://github.com/mesosphere/jackson-case-class-module不知道它有多好。 – Jatin 2014-11-24 07:45:15

+0

我必须在Java中执行此操作,而不是scala。我的意思是我需要在java中解析一个字符串并将其转换为Scala Case类 – 2014-11-24 08:45:32