spark 存储json数据遇到问题——json4s使用(二)
接续上一篇文章,现在介绍一下使用json4s进行json转换成对象的方法。
好,下面上货:
import org.json4s._
import org.json4s.JsonDSL._
import org.json4s.jackson.JsonMethods._
import org.json4s.jackson.Serialization
object jsonstudy2 {
case class Person(name:String,age:Int,luckNumbers:List[Int])
def main(args: Array[String]): Unit = {
//从json中抽取数据
implicit val formats = Serialization.formats(ShortTypeHints(List()))
val testjson = """{"name":"joe","age":15,"luckNumbers":[1,2,3,4,5]}"""
val p = parse(testjson).extract[Person]
println(p.name)
println(p.age)
println(p.luckNumbers)
}
}
运行结果:
注意:
1、首先是来自官网的一个介绍:
能够看出,程序不能够找到这个Person类的构造,但是其实原因是需要提前把Person类编译好。那么应该如何解决呢?这里参考了stackoverflow中的解答:http://stackoverflow.com/questions/14661811/json4s-unknown-error?answertab=active#tab-top
2、在进行转换的时候可能会遇到这个错误:
这个时候需要一个转换,也就是加上这个:
implicit val formats = Serialization.formats(ShortTypeHints(List()))
还有依赖的包:
import org.json4s.jackson.Serialization