Tôi đang cố gắng viết trình chỉnh sửa tùy chỉnh cho Jackson và tôi muốn làm cho nó chung chung (chung theo ý nghĩa làm việc trên bất kỳ loại nào, không giống như trong "generics").Custom Jackson Deserializer Nhận quyền truy cập vào Lớp hiện tại
Tuy nhiên, tôi không thể tìm ra cách xử lý loại trường đang được deserialized.
Ví dụ, tôi đang tìm cách để làm điều gì đó như sau:
@Override
public MyObject deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
Class c = <get type of current field>
// do something with that type
return new SubclassOfC(somedata based on c);
}
Đó là đặc biệt là loại get của lĩnh vực hiện tại phần mà tôi đã phải vật lộn với.
Edit: Đây là loại lĩnh vực java Tôi quan tâm đến
Bằng cách "loại trường hiện nay", làm bạn có nghĩa là loại giá trị JSON (đối tượng, mảng, chuỗi, int, vv)? Hoặc loại của một trường Java có cùng tên trong 'MyObject' mà bạn đang ánh xạ giá trị JSON vào? –
Loại thứ hai, loại trường Java. – monkjack