Если вы можете конвертировать json на карту, вы можете переназначить всю карту (рекурсивно), преобразуя каждую клавишу в ее нижнее значение.
Что-то вроде:
public static Map<String,Object> convertToLowerCaseKeys(Map<String,Object> map){
return map.entrySet().stream().collect(Collectors.toMap(e -> e.getKey().toLowerCase(), e -> {
if(e.getValue() != null && e.getValue() instanceof Map){
return convertToLowerCaseKeys((Map<String,Object>)e.getValue());
}
return e.getValue();
}));
}
Обратите внимание, что приведение к карте может быть немного слишком поспешным, но я пошел с ним для простоты.
EDIT:
Для поиска ключа (верхнего уровня), в то же время чувствительны к регистру:
public static Object getCaseInsensitive(Map<String,Object> map, String key){
if(key == null){
return map.get(null);
}
Optional<String> optional = map.keySet().stream().filter(e -> e != null && e.toLowerCase().equals(key.toLowerCase())).findAny();
if(optional.isPresent()){
return map.get(optional.get());
}
return null;
}
Вы должны попытаться переформулировать ваш вопрос как актуальный вопрос. –
Вы не знаете свой вопрос –
-1 от меня. Ваш вопрос не очень хорошо представлен, ясен или даже жизнеспособной строки JSON. Вероятность быстрого ответа пропорциональна ясности вопроса. –