I have a case class called Recording that I can serialize correctly using spray-json, but I can't serialize a List[Recording].
The answers I've seen about List serialization involve missing imports of DefaultJsonProtocol._ but that hasn't helped me here.
Here's the code:
import spray.json._
import scala.collection.immutable
object RecordingJsonProtocol extends DefaultJsonProtocol {
implicit val recordingFormat = jsonFormat2(Recording.apply)
}
case class Recording(name: String, hashOffsetIndex: immutable.Map[String, Int])
object RecordingLoader {
import RecordingJsonProtocol._
import DefaultJsonProtocol._
def recordingsToJson(filename: String, recordings : List[Recording]) = {
println(recordings.toJson.prettyPrint)
}
}
The error I receive is :
Error:(16, 24) Cannot find JsonWriter or JsonFormat type class for List[Recording]
println(recordings.toJson.prettyPrint)
^
Edit: problem solved
import DefaultJsonProtocol._
is redundant because RecordingJsonProtocol extends DefaultJsonProtocol -- but it's not merely redundant, it also prevents RecordingJsonProtocol from working.