该toJson
方法由隐式扩展提供PimpedAny
,您必须导入:
import spray.json._
def convertToJson // ...
然后,spray-json 使用spray.json.JsonWriter[A]
typeclass 来确定,可以序列化什么。您必须提供证据,证明您A
可以被视为JsonWriter[A]
. 有两种方法可以做到这一点:
def convertToJson[A: JsonWriter](toConvert: A): JsValue =
toConvert.toJson
和
def convertToJson[A](toConvert: A)(implicit writer: JsonWriter[A]): JsValue =
toConvert.toJson
前者是后者的语法糖。
更新:
也可以跳过toJson
扩展JsonWriter
直接使用:
def convertToJson[A](toConvert: A)(implicit writer: JsonWriter[A]): JsValue =
writer.write(toConvert)
这将是确切的,toJson
正在做什么。