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对象,可能没有两个“已使用”字段。也许,但在一个大型对象树中会有许多额外字段,我不确定以后如何“将其合并”。