我有这个JSON:{"成功":false}
我想将其反序列化为此POJO:
class Message {
private Map<String, String> dataset = new HashMap<String, String>();
@JsonProperty("success")
public boolean isSuccess() {
return Boolean.valueOf(dataset.get("success"));
}
@JsonProperty("success")
public void setSuccess(boolean success) {
dataset.put("success", String.valueOf(success));
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以将此JSON反序列化为一个没有字段成功的类?到目前为止,我总是得到"UnrecognizedPropertyException:Unrecognized field"成功""
谢谢你的帮助!
您可以实现一个方法并使用以下方法对其进行注释@JsonAnySetter:
@JsonAnySetter
public void handleUnknownProperties(String key, Object value) {
// this will be invoked when property isn't known
}
Run Code Online (Sandbox Code Playgroud)
另一种可能性是将此失败转为:
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Run Code Online (Sandbox Code Playgroud)
这可以让你反序列化你的JSON而不会在找不到属性时失败.
public static class Message {
private final Map<String, String> dataset = new HashMap<String, String>();
@Override
public String toString() {
return "Message [dataset=" + dataset + "]";
}
}
@Test
public void testJackson() throws JsonParseException, JsonMappingException, IOException {
String json = "{\"success\":false}";
ObjectMapper om = new ObjectMapper().configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
System.out.println(om.readValue(json, Message.class));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8307 次 |
| 最近记录: |