如何在案例类中映射时忽略 json 中的键



如果我有一个JSON

{"name":"jack","email":"jackt@gmail.com"}

现在,在映射此 JSON 时,我只想在我的 case 类中映射名称,例如

case class Person(name:String)

我们如何才能做到这一点?

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 。

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] 

您的姓名将被映射,忽略电子邮件。

看这里小提琴:https://scalafiddle.io/sf/9nppAtI/0

最新更新