object ScalaMain {
trait A[T] {
def shared(v: T): Int
}
case class B(shared: Int, other: String)
case class C(shared: Int)
case class D()
import net.liftweb.json._
implicit val formats = DefaultFormats
val dataB = """{"other":"abd"}"""
val dataC = """{"shared":11}"""
implicit object BShared extends A[B]{
override def shared(b:B)= b.shared
}
implicit object CShared extends A[C]{
override def shared(c:C)=c.shared
}
def extractJson[T:Manifest:A](data:String)={
try{
Some(implicitly[A[T]].shared(parse(data).extract[T]))
}catch{
case e:Throwable =>None
}
}
// def main(args: Array[String]): Unit = {
// val result =extractJson[B](dataB) orElse extractJson[B](dataC) orElse extractJson[C](dataB) orElse extractJson[C](dataC)
// println(result)
// }
}一个Scala的实例化例子
最新推荐文章于 2022-04-05 14:46:41 发布
本文介绍了一个使用Scala进行JSON数据解析的具体实例,展示了如何定义特质来处理泛型,并通过case class来解析不同类型的JSON数据。此外,还实现了异常处理机制确保解析过程的健壮性。
994

被折叠的 条评论
为什么被折叠?



