Если у меня есть JSON
{"name":"jack","email":"jackt@gmail.com"}
сейчас при отображении этого JSON, я хочу, чтобы в моем классе дел отображалось только имя, например
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]
Вам необходимо определить JsonProtocol с неявным значением val.
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