Tôi cần chuyển đổi một chuỗi JSON nhất định thành một đối tượng Java. Tôi đang sử dụng Jackson để xử lý JSON. Tôi không kiểm soát JSON đầu vào (tôi đọc từ một dịch vụ web). Đây là JSON đầu vào của tôi:
{"wrapper":[{"id":"13","name":"Fred"}]}
Đây là một trường hợp sử dụng đơn giản:
private void tryReading() {
String jsonStr = "{\"wrapper\"\:[{\"id\":\"13\",\"name\":\"Fred\"}]}";
ObjectMapper mapper = new ObjectMapper();
Wrapper wrapper = null;
try {
wrapper = mapper.readValue(jsonStr , Wrapper.class);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("wrapper = " + wrapper);
}
Lớp thực thể của tôi là:
public Class Student {
private String name;
private String id;
//getters & setters for name & id here
}
Lớp Wrapper của tôi về cơ bản là một đối tượng chứa để lấy danh sách học sinh của tôi:
public Class Wrapper {
private List<Student> students;
//getters & setters here
}
Tôi tiếp tục nhận được lỗi này và trả về "trình bao bọc" null
. Tôi không chắc chắn những gì còn thiếu. Ai đó có thể giúp tôi không?
org.codehaus.jackson.map.exc.UnrecognizedPropertyException:
Unrecognized field "wrapper" (Class Wrapper), not marked as ignorable
at [Source: java.io.StringReader@1198891; line: 1, column: 13]
(through reference chain: Wrapper["wrapper"])
at org.codehaus.jackson.map.exc.UnrecognizedPropertyException
.from(UnrecognizedPropertyException.java:53)
Map dummy<String,Student> = myClientResponse.getEntity(new GenericType<Map<String, Student>>(){});
và sau đóStudent myStudent = dummy.get("wrapper");