Scala Jackson反序列化为字符串或映射

时间:2015-06-30 21:04:31

标签: json scala jackson

我正在使用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根据输入值自动反序列化为上述案例类的字符串或对象。

1 个答案:

答案 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
相关问题