在Play Json中用空字符串替换null

时间:2018-03-13 05:31:22

标签: scala playframework play-json

我有一个json,里面有一些空值,我只想用play json用空字符串替换那个空值。

示例json:

{
  "featureLength": 348.4256690782206,
  "projectName": null,
  "total_Feature_Length": 348.43
}

1 个答案:

答案 0 :(得分:1)

我们使用两种方式来接收" JSON:" ad hoc"方式和"案例类"办法。在临时方式中,您可能会遇到以下情况:

val projectName = (json \ "projectName").asOpt[String].getOrElse("")

将接受字符串或null并在projectName变量中为您提供一个字符串。在"案例类"方式,我们定义一个Reads转换器,比如case class Feature,然后是

implicit val reads: Reads[Feature] = {
  ((__ \ "featureLength").read[Double] and
    (__ \ "projectName").read[Option[String]] and
    (__ \ "total_Feature_Length").read[Double]) ((length:Double, projectName:Option[String], totalLength:Double) =>
  Feature(length,projectName.getOrElse(""),totalLength))
}

将输入转换为case类,而getOrElse再次确保传入的projectName,无论是字符串还是null,都会产生字符串。