import play.api.libs.json._ case class Result(status: String) object Result { implicit val format: OFormat[Result] = Json.format[Result] } case class Response(results: Seq[Map[String, Result]]) object Response { implicit val format: OFormat[Response] = Json.format[Response] } val response = Response(results = Seq(Map("123" -> Result("ok")))) println(Json.toJson(response))Scala 2.13.12 (works)
-> % scala-cli -S 2.13.12 playJsonSeqMapMacro.sc
Compiling project (Scala 2.13.12, JVM (17))
Compiled project (Scala 2.13.12, JVM (17))
{"results":[{"123":{"status":"ok"}}]}
Scala 3.3.1 (fails)
-> % scala-cli -S 3.3.1 playJsonSeqMapMacro.sc
Compiling project (Scala 3.3.1, JVM (17))
[error] ./playJsonSeqMapMacro.sc:12:44
[error] Instance not found: play.api.libs.json.Writes[scala.collection.immutable.Seq[scala.collection.immutable.Map[String, playJsonSeqMapMacro_.Result]]]
[error] implicit val format: OFormat[Response] = Json.format[Response]
[error] ^^^^^^^^^^^^^^^^^^^^^
Error compiling project (Scala 3.3.1, JVM (17))
Compilation failed
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4