我正在尝试使用 json4s 以 json 格式解析不同类型的事件。我编写了一些案例类来表示所有从基类继承的不同事件Event
:
abstract class Event{ def EventType : String }
case class StartSession(val EventType: String, val Platform: String) extends Event
case class AdView(val EventType: String, val EventSubtype: String) extends Event
这是我用来解析StartSession
事件的函数:
def parser(json: String): Event = {
val parsedJson = parse(json)
val s = parsedJson.extract[StartSession]
return s
}
这个函数将正确解析一个像{"EventType":"StartSession","Platform":"Portal"}
我正在寻找一种方法来概括解析器函数,以便我可以使用它来解析所有类型的事件,Event
然后对函数的返回值进行模式匹配。