我如何为下面使用@JSONView的Java代码段编写Scala等效代码。
我正在使用Scala和Jackson的JSON。我有一个要求,即在序列化过程中,必须根据某些条件动态地包含或排除某些字段。基于Jackson的Wiki,@JSONView似乎是一个不错的选择-但是我并没有成功获得与scala相当的东西。

public class Employee {

public static class All { }
public static class View1 extends All { }
public static class View2 extends View1 { }
public static class View3 extends All { }

@JsonView(All.class)
public Long empid;

@JsonView(View1.class)
public String name;

@JsonView({View2.class, View3.class})
public String addr;

}

最佳答案

直接的Scala等效项如下所示:

object Employee
{
  class All
  class View1 extends All
  class View2 extends View1
  class View3 extends All
}

class Employee
{
  import Employee._

  @JsonView(Array(classOf[All]))
  var empid: Long = _

  @JsonView(Array(classOf[View1]))
  var name: String = _

  @JsonView(Array(classOf[View2], classOf[View3]))
  var addr: String = _
}


这种转换没有利用Scala特定的Jackson支持。无论是否安装Jackson Scala module,它都应照常工作。

关于java - jackson @JSONView的Scala等效代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21050307/

10-10 03:58