我正在使用jackson在Scala中进行json反序列化。
我正在尝试反序列化一个json字段,该字段可以是字符串,也可以是我定义的类的对象。例如:
var temp = db.Drivers.Select(d => new
{
Name = d.FirstName + ' ' + d.LastName,
TruckIds = d.Trucks.Select(t => t.Id)
}).ToArray();
var truckDrivers = temp.Select(d => new TruckDriver()
{
Name = d.Name,
setSerialized = TruckIds
}
如何处理这种情况并让Json根据输入值自动反序列化为上述案例类的字符串或对象。
答案 0 :(得分:0)
其中一种方法是:
case class A(fieldName:String)
case class B(fieldName:Sample) //your Sample is param
val tryResult = Try {
JsonMethods.parse(json).extract[A]
}.recover { case _ => JsonMethods.parse(json).extract[B] }
println(tryResult.get) // can throw exception