Json4s:原始json值

时间:2017-11-09 09:11:58

标签: json scala json4s

我有非常动态的Web服务协议,我需要存储原始JSON值才能存储完整的响应。

我正在使用scala和json4s。

case class DataClass(value: JValue)
case class Response(status: String, data: DataClass)

解析后

{
  "status": "awesome",
  "data": {
    "name": "John",
    "age" : 20
  }
}

但是这样,json4s总是返回JNothing

JsonMethods.parse(json).extract[Response]

返回

  

响应(真棒,数据类(JNothing))

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

// case class DataClass(value: JValue)
case class DataClass(name: String, age: Int)
case class Response(status: String, data: DataClass)

val s = """{
  "status": "awesome",
  "data": {
    "name": "John",
    "age" : 20
  }
}"""
val json = parse(s).extract[Response] // json: Response = Response(awesome,DataClass(John,20))

您应该使案例类与json字符串匹配。在这种情况下,json字符串中没有“值”,只有“名称”和“年龄”。如果案例类可以解决问题,请使用“名称”和“年龄”。