Custom Jackson Deserializer Getting Access to Current Field Class

前端 未结 4 1016
遥遥无期
遥遥无期 2021-01-05 07:13

I\'m trying to write a custom deserializer for Jackson and I want to make it generic (generic in the sense of working on any type, not as in \"generics\").

However I

4条回答
  •  孤独总比滥情好
    2021-01-05 07:48

    I solved it like this.

    Get current field java type...

    @Override
    public Enum deserialize(JsonParser jsonparser, DeserializationContext context) throws IOException, JsonProcessingException {
        System.out.println("EnumDeserializer ....");
        Field field = findField(jsonparser.getCurrentName(), jsonparser.getCurrentValue().getClass());
        Class javaType = field.getType();
        return null;
    }
    
    public Field findField(String name, Class c) {
        for (; c != null; c = c.getSuperclass()) {
            for (Field field : c.getDeclaredFields()) {
                if (Modifier.isStatic(field.getModifiers())) {
                    continue;
                }
                if (field.getName().equals(name)) {
                    return field;
                }
            }
        }
        return null;
    }
    

提交回复
热议问题