2017-10-25 11 views
2

現在、私はlift-jsonを使用してjsonをオブジェクトに解析しています。これは、私は、一般的にこれが正常に動作しているインタフェース/特性とさまざまな実装でJSONを解析する

net.liftweb.json.parse(json).extract[MyClass]

を使用した署名です。しかし、もう少しやりたいと思っています。私のクラスは、タイプList[SomeTrait]のオブジェクトを持っています。SomeTraittraitです。そして私は、異なるコンストラクタシグネチャを持つその特性の2つの異なる実装を持っていますが、明らかに同じメソッドを別々に実装しています。

JSONまたは使用する実装を検出するコードがありますか?そのように、jsonを解析するコードは同じままにすることができますが、私は新しい実装を追加し続けることができますSomeTrait

答えて

1

私が知る限り、Liftで簡単に行うことはできません。デシリアライザが適切なインスタンスを取得できるように、JSONオブジェクト自体に関する型情報を提供できるようにするには、まだいくつかの属性を持つ必要があります。

私は、サブクラスをマークしてからそれを使用するためにObjectMapperを使用するために、Jackson JsonTypeInfo注釈を使用したいと思います。

詳細はhttps://github.com/FasterXML/jackson-annotations#handling-polymorphic-typesをご覧ください。

関連する問題