java - Jackson 的 @JSONView 的 Scala 等效代码

标签 java json scala serialization jackson

如何为下面使用 @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/

相关文章:

Scala:枚举为什么类型不安全?

scala - 在Akka中是否必须拥有大师级 Actor ?

java - 如何使用递归构建嵌套链表?

java - 为什么 PermGen Commit 增量这么小?

java - 如何在jmeter3.0中使用csv数据集配置登录多个用户名和paasword?

json - 动态 JSON 解码 Swift 4

javascript - angular js - 获取json数据

java - 表示整数的 float 是否也会出现舍入错误?

java - Jackson 将子 JSON 反序列化为父属性

scala - 从灵活查询中的多个表中删除行