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
}
この関数は、次のようなjsonを正しく解析します{"EventType":"StartSession","Platform":"Portal"}
Event
パーサー関数を一般化して、継承するすべてのタイプのイベントを解析し、関数の戻り値に対してパターン マッチングを実行できるようにする方法を探しています。