我有一些JSON我想映射到我的 Box
目的:
{
"created_date": "2015-11-11",
"generation_date": "2015-11-12T20:35:00+0000",
"values": {
"MORNING": 13,
"EVENING": 18,
"NOON": 446,
"NIGHT": "0.60.0"
},
"id": "12345"
}
和我的 Box
对象看起来像:
public class Box {
@JsonProperty
Map<String, Object> json;
public Box() {
// Blank
}
// Getter and setter for `json` field
}
这是我的代码:
Box box = null;
// `JSON_STRING` below refers to a string of the above JSON
metricsPacket = new ObjectMapper().readValue(JSON_STRING, Box.class);
我一直收到这个错误:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "created_date" (class com.me.Box), not marked as ignorable (one known property: "json"])
我在网上找到的所有例子都只是将JSON反序列化为一个简单的POJO String
要么 int
成员变量。如何正确地将我的JSON映射到我的 json
字段并使其行为正常?
我想,一旦这个工作 json.get("id")
会回来的 12345
而 json.get("values")
会回来另一个 Map<String, Object>
(要么 Map<String, String>
)。我仍然是使用杰克逊的新手,所以这也可能不是我想做的事情的正确方法。任何帮助,将不胜感激!