5

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.

jaegard
  • 171
  • 1
  • 7

0 Answers0