[英]Parse specific JSON array using JACKSON parser
{
"response": [
{
"id": "1",
"name": "xx"
},
{
"id": "2",
"name": "yy"
}
],
"errorMsg": "",
"code": 0
}
如何使用杰克逊解析器单独解析“响应”。 我收到错误消息
Unrecognized field "errorMsg", not marked as ignorable.
我的模型类Response.java
public class Response {
@JsonProperty("id")
private Integer id;
@JsonProperty("name")
private String name;
}
您的数据模型有点不完整,这就是Jackson所指出的。 为了改善这种情况,您应该映射更多字段。
public class Response {
@JsonProperty("id")
private Integer id;
@JsonProperty("name")
private String name;
// getter/setter...
}
public class Data {
@JsonProperty("response")
private List<Response> response;
@JsonProperty("errorMsg")
private String errorMsg;
@JsonProperty("code")
private int code;
// getter/setter...
}
您可以创建一个父对象并使用@JsonIgnoreProperties
。 另外,您可以使用ObjectMapper's convertValue()
方法获取节点并将其转换为响应对象,例如
try {
String json = "{\"response\":[{\"id\":\"1\",\"name\":\"xx\"},{\"id\":\"2\",\"name\":\"yy\"}],\"errorMsg\":\"\",\"code\":0}";
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);
List<Response> responses = mapper.convertValue(node.findValues("response").get(0), new TypeReference<List<Response>>() {});
System.out.println(responses);
} catch (JsonProcessingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.