json4s正在使用NPE,嵌套json

时间:2017-11-22 12:29:48

标签: scala json4s

var json= {"a1":"b","c1":"d","e1":{"f1":"g","h1":"i","j1":"k"}}
implicit val formats = org.json4s.DefaultFormats
parse(json).extract[Map[String, String]]

执行代码时,我收到NullPointerException。 NPE是因为formats为空。 我需要使用一些不同的格式吗?

1 个答案:

答案 0 :(得分:0)

您无法像这样提取,因为您要返回Map [String,String],但输入e1包含Array。因此,您可以使用案例类来提取值:

case class Data(a1: String, c1: String, e1: ArrayData)

case class ArrayData(f1: String, h1: String, j1: String)

def checkData : Data = {
    val json = """{"a1":"b","c1":"d","e1":{"f1":"g","h1":"i","j1":"k"}}"""
    implicit val formats = org.json4s.DefaultFormats
    parse(json).extract[Data]
  }

// output : Data(b,d,ArrayData(g,i,k))

感谢。