如何在 class 映射时忽略来自 json 的键
How to ignore a key from json while mapping in case class
如果我有 JSON
{"name":"jack","email":"jackt@gmail.com"}
现在在映射这个 JSON 时,我只想在我的情况下映射名称 class,例如
case class Person(name:String)
我们怎样才能做到这一点?
import play.api.libs.json.Json
case class Sample(name:String)
implicit val SampleJosn = Json.reads[Sample]
val result = Json.parse("""{"name":"jack","email":"jackt@gmail.com"}""").as[Sample]
val result2 = Json.parse("""{"name":"jack"}""").as[Sample]
将忽略电子邮件映射您的姓名。
请参阅此处 Fiddle:https://scalafiddle.io/sf/9nppAtI/0
import spray.json._
case class Person(name: String)
object PersonFormat extends DefaultJsonProtocol {
implicit val personFormat = jsonFormat1(Person)
}
import PersonFormat._
val source = """{ "name":"jack", "email":"jackt@gmail.com" }"""
source.parseJson.convertTo[Person]
您需要使用隐式 val 定义 JsonProtocol。
如果我有 JSON
{"name":"jack","email":"jackt@gmail.com"}
现在在映射这个 JSON 时,我只想在我的情况下映射名称 class,例如
case class Person(name:String)
我们怎样才能做到这一点?
import play.api.libs.json.Json
case class Sample(name:String)
implicit val SampleJosn = Json.reads[Sample]
val result = Json.parse("""{"name":"jack","email":"jackt@gmail.com"}""").as[Sample]
val result2 = Json.parse("""{"name":"jack"}""").as[Sample]
将忽略电子邮件映射您的姓名。
请参阅此处 Fiddle:https://scalafiddle.io/sf/9nppAtI/0
import spray.json._
case class Person(name: String)
object PersonFormat extends DefaultJsonProtocol {
implicit val personFormat = jsonFormat1(Person)
}
import PersonFormat._
val source = """{ "name":"jack", "email":"jackt@gmail.com" }"""
source.parseJson.convertTo[Person]
您需要使用隐式 val 定义 JsonProtocol。