Case insensitive JSON to POJO mapping without changing the POJO

后端 未结 6 876
野性不改
野性不改 2020-11-27 21:06

Does anyone know how com.fasterxml.jackson.databind.ObjectMapper is able to map JSON properties to POJO properties case insensitive?

JSON-String:

6条回答
  •  再見小時候
    2020-11-27 21:14

    package br.com.marcusvoltolim.util;
    
    
    import com.fasterxml.jackson.databind.DeserializationFeature;
    import com.fasterxml.jackson.databind.MapperFeature;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import lombok.extern.log4j.Log4j;
    
    @Log4j
    public class JsonUtils {
    
        private static final ObjectMapper OBJECT_MAPPER;
    
        static {
            OBJECT_MAPPER = new ObjectMapper();
            OBJECT_MAPPER.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
            OBJECT_MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        }
    
        public static  T fromJson(final String json, final Class classe) {
            try {
                return OBJECT_MAPPER.readValue(json, classe);
            } catch (Exception e) {
                log.error(e);
                try {
                    return classe.newInstance();
                } catch (InstantiationException | IllegalAccessException ex) {
                    return null;
                }
            }
        }
    
    }
    

提交回复
热议问题