I would like to deserialise Scala case classes that have been serialised using lift-json. The problem I am having is, I don't know how to invoke the generic method extractOpt[A]
method below:
someString:String = {...}
JsonParser.parse(someString).extractOpt[A]
The type of [A]
is going to depend on metadata, for example the class name of [A]
but for the life of me I can't work out how to make the call using reflection. In c# I would just be able to set the generic type for a call on extractOpt[A]
using reflection. I fear my problems are something to do with Java type erasure.
I am going to have a lot of case classes so I really want to avoid having to create some kind of hand crafted map from {metadata} -> classOf[]. I have full control over what the metadata associated with someString
is.
If it helps understand why I have this issue, I am implementing event sourcing, and all my [A] types are going to be persisted events. Any ideas what I can do?