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

时间:2015-11-12 19:08:24

标签: scala spray spray-json

我正在尝试编写一个将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序列?

1 个答案:

答案 0 :(得分:2)

我在发布此问题后立即解决了我的问题。我为格式化程序使用了隐式参数,然后导入了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
}