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文字列です。クイックアンサーの確率は、質問の明確さに比例します。 –