含まれるエンティティのjson形式を書き込もうとしていますオプションの地図playa.Predef.Map [skel.Option [scala.Double]]に対してplay.api.libs.json.Formatのインスタンスは使用できません
import play.api.libs.json.{Json, OFormat}
val a: Map[String, Option[Double]] = Map("a" -> None)
case class Person(x: Map[String, Option[Double]])
object Person {
implicit val personFormat: OFormat[Person] = Json.format[Person]
}
Json.toJson(Person(a))
Noneに値を0.0にマッピングすることは、有効な値であるため、良い解決策ではない場合があります。 Noneはnullにマップする必要があります。 –
次の暗黙的な書き込みに対する変更を加え、現在はNoneにnullを返します。 JsObject(map.mapValues { ケースなし=> JsNull ケース(x)=> JsNumber(x) ) ' –
@ SuhitKamtheはい、これはそのような暗黙の定義方法の一例にすぎません。 –