我正在使用json4s-jackson(版本3.2.11)。
我试图使用注释忽略字段(如jackson java版本)。
这是例子:
case class User(id: Long, name: String, accessToken: String)
以下代码无效。
@JsonIgnoreProperties(Array("accessToken"))
case class User(id: Long, name: String, @JsonProperty("accessToken") accessToken: String)
答案 0 :(得分:8)
在json4s中,您可以提供字段序列化程序的实例,可以将其配置为忽略或重命名字段。查看文档以获取更多详细信息,但以下内容应该有效:
case class User(id: Long, name: String, accessToken: String)
val userSerializer = FieldSerializer[User](
FieldSerializer.ignore("accessToken")
)
implicit val formats = DefaultFormats + userSerializer
答案 1 :(得分:1)
您可以编写一个实用程序方法,使用Keys删除默认参数,如下所示
def removeKeys(entity:AnyRef, keys: List[String]=List("accessToken", "key1", "key2")): String= {
compact(Extraction.decompose(entity).removeField { x => keys.contains(x._1)})
}
答案 2 :(得分:0)
扩展Steven Bakhtari的答案:如果您想忽略多个字段,可以执行以下操作:
FieldSerializer.ignore("config") orElse ignore("category")