在Scala中将类类型作为参数传递

时间:2019-05-16 10:22:51

标签: scala

我想解析一个Json对象。我定义了以下类:

limits = [previousTheta1 - step previousTheta1 + step;
          previousTheta2 - step previousTheta2 + step;
          previousTheta3 - step previousTheta3 + step];

我生成了这种类型的虚拟对象:

case class Metadata(
  val messageTime:   Option[String], 
  val messageUUID:   Option[String], 
  val messageSource: Option[String], 
  val messageFormat: Option[String])

现在,我想使用jsonMsg = """{"messageTime": "2018-09-19T11:03:22.382+04:00", "messageUUID": "4ef7fce7-81cf-4a27-82d8-9019c2cf09df", "messageSource" : "SDG", "messageFormat" : "json"}""" 将该字符串解析为元数据类型的对象:

mapper.readValue

这很好。但是在这种情况下,fromJson只能解析元数据对象。

现在,我试图使来自Json的方法更通用,像这样传递要解析的对象的类[我使用其他question作为参考]:

fromJson(jsonMsg) 

def fromJson(json : String)  = {
mapper.readValue[Metadata](json, classOf[Metadata])
}

但是我得到了错误:

  

前向引用扩展了值obj的定义

我想念的是什么?我怎么能实现自己的尝试?

以防万一 val obj = fromJson2(jsonMsg, classOf[Metadata]) def fromJson2(json : String, c: Class[_]) = { mapper.readValue(json, c) } 属于mapper.readValue

这是定义:

import com.fasterxml.jackson.databind.ObjectMapper

0 个答案:

没有答案