代码之家  ›  专栏  ›  技术社区  ›  Amit Prasad

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

  •  1
  • Amit Prasad  · 技术社区  · 8 年前

    如果我有一个JSON

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

    case class Person(name:String)

    2 回复  |  直到 8 年前
        1
  •  0
  •   Shankar Shastri    8 年前
    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。

        2
  •  -2
  •   pme    8 年前
        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

    推荐文章