当我有一个正确的 T 的 JsonFormatter 时序列化 Sequence[T]

Serialize Sequence[T] when I have a correct JsonFormatter for T

我正在尝试编写一个函数,将 NbaPlayerBoxScore 的列表转储到 json 文件。我写了一个 JsonFormat 函数,它可以将 NbaPlayerBoxScore 序列化到文件中。但是,我想将 Seq[NbaPlayerBoxScore] 写入文件。这是我的尝试

def dumpToJsonFile(contents : Seq[NbaPlayerBoxScore], protocol : JsonFormat[NbaPlayerBoxScore]) : Unit = {
      import protocol._
      val w = new BufferedWriter(new FileWriter(fileName))
      w.write(contents.toJson.prettyPrint)
      w.close
    }

这是我得到的错误:

[error] /home/chris/dev/nba-api/src/main/scala/io/extrapoint/nbaapi/models/NbaPlayerBoxScoreDAO.scala:174: Cannot find JsonWriter or JsonFormat type class for Seq[io.extrapoint.nbaapi.models.NbaPlayerBoxScore]
[error]       w.write(contents.toJson.prettyPrint)
[error]                        ^
[error] one error found

当我有单个 NbaPlayerBoxScore

的正确格式化程序时,如何序列化 NbaPlayerBoxScore 序列

我在发布这个问题后立即解决了我的问题。我为格式化程序使用了一个隐式参数,然后导入了 DefaultJsonProtocol

解决方法如下:

def dumpToJsonFile(contents : Seq[NbaPlayerBoxScore])(implicit protocol : JsonFormat[NbaPlayerBoxScore]) : Unit = {
  import DefaultJsonProtocol._
  val w = new BufferedWriter(new FileWriter(fileName))
  w.write(contents.toJson.prettyPrint)
  w.close
}