【发布时间】:2018-06-21 05:14:39
【问题描述】:
我需要解析几个 json 字段,我正在使用 Play Json 来执行此操作。由于解析可能失败,我需要为每个字段抛出一个自定义异常。
要读取一个字段,我使用这个:
val fieldData = parseField[String](json \ fieldName, "fieldName")
我的 parseField 函数:
def parseField[T](result: JsLookupResult, fieldName: String): T = {
result.asOpt[T].getOrElse(throw new IllegalArgumentException(s"""Can't access $fieldName."""))
}
但是,我收到一条错误消息:
Error:(17, 17) No Json deserializer found for type T. 尝试实现 此类型的隐式读取或格式。 result.asOpt[T].getOrElse(throw new IllegalArgumentException(s"""Can't access $fieldName."""))
有没有办法告诉asOpt[] 使用T 中的类型?
【问题讨论】:
标签: scala