在 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,此后都会产生一个字符串。
我有一个 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,此后都会产生一个字符串。