Scala 如何存储我没有的额外字段';反序列化时不关心映射中的内容?

Scala 如何存储我没有的额外字段';反序列化时不关心映射中的内容?,scala,scalatra,Scala,Scalatra,这就是我想做的:,但我还没有让它工作 这是我要反序列化的类: class MyClass( @JsonProperty val name: String, @JsonProperty val age: Int, @JsonIgnore val other: mutable.HashMap[String, Any] = mutable.HashMap() ) { @JsonAnyGetter def getO

这就是我想做的:,但我还没有让它工作

这是我要反序列化的类:

class MyClass(
           @JsonProperty val name: String,
           @JsonProperty val age: Int,
           @JsonIgnore val other: mutable.HashMap[String, Any] = mutable.HashMap()
         ) {

  @JsonAnyGetter def getOther: mutable.HashMap[String, Any] = other

  @JsonAnySetter def setOther(key: String, value: Any): Unit = {
    other.put(key, value)
  }
}
现在输入可能是:

{
    "name": "Lisa",
    "age": 42
}
一切都很好。但输入也可能是这样的:

{
    "name": "Lisa",
    "age": 42
    "extraProperty": 123
}
在这种情况下,我希望将
名称
/
年龄
(即
外部属性
)以外的所有内容存储到地图中,以便将其传递给下一个服务。但它不起作用:在
other
地图中没有显示任何内容。我也尝试过做
@(JsonAnyGetter@field)val other:mutable.HashMap[String,Any]=mutable.HashMap()
(我在这里找到了:),但它不起作用


有人用Scalatra处理过这个问题吗?

你也可以保留json对象,可能没有两个“已使用”字段。也许,但在一个大型对象树中会有许多额外字段,我不确定以后如何“将其合并”。