我需要将带有jackson的jSon String序列化为Object。
我得到的字符串是
{"response":{"status":1,"count":"90120"}}
我的目标是
@JsonRootName("response")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Wrapper {
private String count;
private int status;
private String registration_error;
private int usable;
// getters and setters
所以,这就是我试图获取我的Wrapper的方式
String response = {"response":{"status":1,"count":"90120"}};
ObjectMapper mapper = new ObjectMapper();
Wrapper w = mapper.readValue(response, Wrapper.class);
但是当我记录它时我得到了
Wrapper [count=null, status=0, registration_error=null, usable=0]
它有什么问题?
由于
答案 0 :(得分:0)
您使用@jsonRootName注释是正确的。但是,注释本身不起作用。您必须为对象映射器配置DeserializationFeature。您的代码应如下所示:
String response="{\"response\":{\"status\":1,\"count\":\"90120\"}}";
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
//mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true); This is for serailization time
Wrapper wrapper = mapper.readValue(response, Wrapper.class);
检查包装器,它具有json中给出的计数和状态。