使用Play JSON API通过Case Class将Scala ListBuffer转换为JSON

时间:2017-06-05 12:38:46

标签: scala playframework play-json

我有一个案例类定义为case class IndexList(value: ListBuffer[String]) 我无法使用Play API将其转换为JSON。

我已经尝试了

object IndexList{
  implicit val indexListWrites = Json.writes[IndexList]
}

作为Macro Inception的一部分,但它没有给出编译错误:

exception during macro expansion:
[error] java.lang.NoSuchMethodError: scala.collection.immutable.$colon$colon.tl$1()Lscala/collection/immutable/List;

我也试过

object IndexList{
  implicit val indexListWrites: Writes[IndexList] = Writes{
    (indexList: IndexList) => JsArray(indexList.value)
  }
}

但失败并出现错误:

type mismatch;
[error]  found   : scala.collection.mutable.ListBuffer[String]
[error]  required: Seq[play.api.libs.json.JsValue]

任何有关这两种方法的帮助都会有所帮助。 如果还有其他方法可以实现这一点,那也很好。

0 个答案:

没有答案