【发布时间】:2019-05-05 10:37:21
【问题描述】:
我有一个JSON 字符串,我创建了一个函数,它使用Scala case class 将这个JSON 解析为一个对象。我编写了以下代码以通用方式对其进行解析。但是,它给了我一个错误:
def getJsonObj[T](jsonString:String): T = {
implicit val formats: DefaultFormats.type = DefaultFormats
parse(jsonString).extract[T]
}
错误可以在下面找到:
Error:(19, 32) No Manifest available for T.
parse(jsonString).extract[T] Error:(19, 32) not enough arguments for
method extract: (implicit formats: org.json4s.Formats, implicit mf:
scala.reflect.Manifest[T])T. Unspecified value parameter mf.
parse(jsonString).extract[T]
我找到了这个No Manifest available for Type 但我不知道如何在我的代码中修复它。另外,我发现this,Spark Scala - How to construct Scala Map from nested JSON (Scala: "No manifest available for type T") 但我需要以通用方式将case class 传递给函数。这似乎是一个常见问题,但我无法使用可用的答案来解决它,因为我是 Scala 新手。
还有一点,如何添加try-catch 来查看是否正确解析?
【问题讨论】: