public class UpdateRequest {
@JsonProperty
private String id;
@JsonProperty
private String type;
@JsonProperty
private long version;
@JsonProperty("fields")
private Map<String, String> values;
}
我的输入看起来像这样:
{
"id":"1",
"type":"add",
"version": 20146780,
"fields": {
"pid":"1234",
"location":"99,100",
"lastModified":"2013-12-30T22:15:37.482Z"
}
}
这就是我目前使用杰克逊的方式,但它失败了。我在这里缺少什么?
public Optional<UpdateRequest> deserialize(String message) {
ObjectMapper mapper = new ObjectMapper();
Optional<UpdateRequest> updateRequest = Optional
.empty();
try {
updateRequest = Optional.of(mapper.readValue(message,
UpdateRequest.class));
System.out.println(mapper
.writeValueAsString(updateRequest));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return updateRequest;
}
答案 0 :(得分:0)
不确定Optional类在这里做什么,但您可以通过执行
来获取UpdateRequest对象UpdateRequest updateRequest = mapper.readValue(message, UpdateRequest.class);
您可能需要查看此文档JacksonInFiveMinutes。