我有:
case class A(a: T, b: String)
我希望根据A类变量a的不同类型使用不同的json。
例如,如果type为T1,我希望json像{ "aaa": "value", "b":"value"}
如果type为T2,我希望json像{ "bbb": "value", "b":"value"}
。
我正在使用喷雾json
答案 0 :(得分:0)
您必须提供自定义协议:
implicit object AJsonFormat extends RootJsonFormat[A] {
def write(foo: A) = JsObject(
foo.a match {
case a: T1 => "aaa" -> JString(a)
case a: T2 => "bbb" -> Jstring(a)
},
"b" -> JString(foo.b))
}