[英]Not able to convert json into object using json4s scala
I am trying to use json4s to parse json string into object but even after running this code i am getting following as print result. 我正在尝试使用json4s将json字符串解析为对象,但即使在运行此代码后,我也会得到以下作为打印结果。
JObject(List((numbers,JArray(List(JInt(1), JInt(2), JInt(3), JInt(4)))))) JObject(List((numbers,JArray(List(JInt(1),JInt(2),JInt(3),JInt(4))))))
def main(args: Array[String]): Unit = {
val json = """{"users": [
{"name": "Foo", "emails": ["Foo@gmail.com", "foo2@gmail.com"]},
{"name": "Bar", "emails": ["Bar@gmail.com", "bar@gmail.com"]}]
}"""
val obj = parse(json).extract[List[User]]
println(obj)
}
case class User(name: String, emails: List[String])
case class UserList(users: List[User]) {
override def toString(): String = {
this.users.foldLeft("")((a, b) => a + b.toString)
}
}
Please help 请帮忙
Just add implicit val formats = DefaultFormats
and change the genric type to UserList
: 只需添加
implicit val formats = DefaultFormats
并将genric类型更改为UserList
:
import org.json4s._
import org.json4s.native.JsonMethods._
object Test {
def main(args: Array[String]): Unit = {
implicit val formats = DefaultFormats
val json = """{"users": [
{"name": "Foo", "emails": ["Foo@gmail.com", "foo2@gmail.com"]},
{"name": "Bar", "emails": ["Bar@gmail.com", "bar@gmail.com"]}]
}"""
val obj = parse(json).extract[UserList]
println(obj)
}
}
case class User(name: String, emails: List[String])
case class UserList(users: List[User])
and the output is: 输出是:
UserList(List(User(Foo,List(Foo@gmail.com, foo2@gmail.com)), User(Bar,List(Bar@gmail.com, bar@gmail.com)))) UserList(List(用户(Foo,List(Foo@gmail.com,foo2@gmail.com)),用户(Bar,List(Bar @ gmail.com,bar @ gmail.com))))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.