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

Replace null with empty string in Play Json

我有一个 json,其中有一些空值,我只想使用播放 json.

将空值替换为空字符串

样本json:

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

我们使用两种方式 "receive" JSON:"ad hoc" 方式和 "case class" 方式。在临时方式中,您可能有类似的东西:

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

它将接受一个字符串或 null 并在 projectName 变量中为您提供一个字符串。在 "case class" 方式中,我们定义一个 Reads 转换器,例如 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))
}

这会将输入转换为您的案例 class 并且 getOrElse 确保传入的 projectName,无论是字符串还是 null,此后都会产生一个字符串。