当值为空时,不能使用case类转换JSON键:值对

时间:2018-01-19 08:15:07

标签: json scala playframework

在我的Play + Scala(2.5.x,2.11.11)应用程序中,我使用Case类将JSON转换为(客户端< - >应用程序和应用程序< - > DB)。使用内置的读/写转换变得完全自动化。 当DB返回字段的null值并且相应的JSON输出不包含该键:值对时,会出现此问题。例如:

def getUserDetails (id: Option[String]) = Action.async {
      dbch.dbProd.withConnection { implicit connection =>
         val result: Option[SignupUserDetails] =
            SQL"""select * from #$USR_LISTUSERS where (User_Pk = ${id})""".as(SignupUserDetailsParser.singleOpt)
         ......
      }
}

案例类:

case class SignupUserDetails(User_Pk: Option[String], Emailid: Option[String], First_Name: Option[String], Last_Name: Option[String], Country: Option[String])

分析器:

implicit val SignupUserDetailsParser = Macro.namedParser[SignupUserDetails]

我发现了一个类似的问题,其中提到此行为应仅针对自定义类型发生,但不适用于String类型: Explicitly output JSON null in case of missing optional value

但它也不适用于String类型。

0 个答案:

没有答案