[英]Marshaling akka-http
class Converter extends
RootJsonFormat[TypeToConvert]
{
def write(obj : TypeToConvert) : JsValue =
{
obj match
{
case Https => JsString(Https.name)
case Sms => JsString(Sms.name)
}
}
def read(jsValue : JsValue) : TypeToConvert =
{
jsValue match
{
case JsString("HTTPS") => Https
case JsString("SMS") => Sms
case _ => throw
DeserializationException("Expected a TypeToConvert
Type")
}
}
}
我已经编写了这样的转换器,在此我仅使用write方法。 有没有一种方法可以只使用write方法来编写json格式器。 我想删除读取方法。
trait RootJsonFormat[T] extends JsonFormat[T] with RootJsonReader[T] with RootJsonWriter[T]
如您所见,这就是扩展JsonFormat的RootJsonFormat的层次结构。 使用RootJsonReader以及RootJsonWriter。 如果您只想使用JsonWriter。 然后使用RootJsonWriter扩展您的类。
在这种情况下,您将RootJsonFormat与类一起使用,则必须使用define write和read方法。
class Converter extends
RootJsonWriter[TypeToConvert]
{
def write(obj : TypeToConvert) : JsValue =
{
obj match
{
case Https => JsString(Https.name)
case Sms => JsString(Sms.name)
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.