Tôi đang sử dụng Jackson trong CXF để tuần tự hóa/deserialize dữ liệu. Thật không may, tôi gặp khó khăn khi cấu hình CXF/Jackson để deserialize một mảng JSON. Tôi đánh giá cao sự trợ giúp trong việc giải quyết vấn đề.Làm thế nào để Deserialize JSON Array?
Tính đến thời điểm này hầu hết các dữ liệu json đã được định dạng đối tượng, tức là
{ "objectCollection": [ {...}, {...}, {...}... ] }
Tuy nhiên, dữ liệu json trong câu hỏi có dạng:
[ {...}, {...}, {...} ]
Điểm cuối dịch vụ web mong đợi một đối tượng "GroupsDto" (xem sau) có một thuộc tính duy nhất - một tập hợp các nhóm, là được truyền qua t mảng JSON.
@PATH(...)
public Response createGroups(GroupsDto groups) {
...
}
Tôi đã thêm @JsonDeserialize như sau vào thuộc tính GroupsDto collection, nhưng nó KHÔNG hoạt động. Tôi tiếp tục nhận được: "Không thể deserialize thể hiện của GroupsDto ra khỏi START_ARRAY thẻ"
public class GroupsDto {
private Collection<GroupDto> groups;
/**
* @return the groups
*/
@XmlElement(name="group")
@JsonDeserialize(contentAs=GroupDto.class)
public Collection<GroupDto> getGroups() {
return groups;
}
...
}
Kiểm tra câu hỏi này [Jackson - đọc một mảng JSON với Robospice sử dụng loadDataFromNetwork() phương pháp] [1] [1]: http://stackoverflow.com/questions/18792702/jackson-reading- a-json-array-với-robospice-using-loaddatafromnetwork-method – Sneg