我有一个json,里面有一些空值,我只想用play json用空字符串替换那个空值。
示例json:
{
"featureLength": 348.4256690782206,
"projectName": null,
"total_Feature_Length": 348.43
}
答案 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,都会产生字符串。