这就是我想要做的事:Jackson deserialize extra fields as map,但我还没有让它发挥作用。
这是我要反序列化的类:
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
}
在这种情况下,我想将除name
/ age
之外的所有内容(例如此处extraProperty
)存储到地图中,以便我可以将其传递给下一个服务。但它不起作用:other
地图中没有任何内容。我也尝试过@(JsonAnyGetter@field) val other: mutable.HashMap[String, Any] = mutable.HashMap()
(我在这里找到https://github.com/FasterXML/jackson-module-scala/issues/308),但它没有用。
有没有人让这个与Scalatra一起工作?