jackson自定义反序列化

 @Test
    void t2() throws JsonProcessingException {
        String jsonStr = "{\"username1\":\"zs\",\"age\":30}";
        User user = objectMapper.readValue(jsonStr, User.class);
        System.out.println(user);
    }

    @Data
    @AllArgsConstructor
    @JsonDeserialize(using = MyJsonDeserializer.class)
    public static class User {
        private String username;
        private Integer age;
    }


    public static class MyJsonDeserializer extends JsonDeserializer {

        @Override
        public User deserialize(JsonParser p, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
            ObjectCodec codec = p.getCodec();
            JsonNode node = codec.readTree(p);
            String username = node.get("username1").asText();
            int age = node.get("age").intValue();
            return new User(username, age);
        }
    }

你可能感兴趣的:(jackson自定义反序列化)