我有非常动态的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))
答案 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字符串中没有“值”,只有“名称”和“年龄”。如果案例类可以解决问题,请使用“名称”和“年龄”。