code: @SuppressWarnings("rawtypes")
      private static void registerEnumModule(ObjectMapper mapper) {
          SimpleModule module = new SimpleModule();
          module.setDeserializerModifier(new BeanDeserializerModifier() {
              @Override
              public JsonDeserializer<Enum> modifyEnumDeserializer(DeserializationConfig config,
                                                                   final JavaType type,
                                                                   BeanDescription beanDesc,
                                                                   final JsonDeserializer<?> deserializer) {
                  return new JsonDeserializer<Enum>() {
                      @Override
                      public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
                          @SuppressWarnings("unchecked") Class<? extends Enum> rawClass = (Class<Enum<?>>) type.getRawClass();
                          return Enum.valueOf(rawClass, jp.getValueAsString().toUpperCase());
                      }
                  };
              }
          });
          module.addSerializer(Enum.class, new StdSerializer<Enum>(Enum.class) {
              @Override
              public void serialize(Enum value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
                  jgen.writeString(value.name().toLowerCase());
              }
          });
          mapper.registerModule(module);
      }
docs: Register Jackson module that maps enums as lowercase. Per http://stackoverflow.com/a/24173645.