需求
系统对外暴漏接口出参需要规范统一为key值全部小写,但是考虑到业务中出参有字符串、Map、List、Map包含List、List包含Map的情况,所以写了个Object转换key值工具类
实现思路
使用递归方式调用转换,根据对象类型,使用不同方式遍历转换
实现代码
public static Object convertKeysToLower(Object object) {
//map类型遍历转换key值
if (object instanceof Map) {
Map<String, Object> data = (Map<String, Object>) object;
Map<String, Object> newData = new HashMap<>();
for (Map.Entry<String, Object> entry : data.entrySet()) {
String newKey = entry.getKey().toLowerCase();
//value值回调自身
Object newValue = convertKeysToLower(entry.getValue());
newData.put(newKey, newValue);
}
return newData;
//list类型遍历后循环回调自身
} else if (object instanceof List) {
List<Object> data = (List<Object>) object;
List<Object> newList = new ArrayList<>();
for (Object item : data) {
Object newItem = convertKeysToLower(item);
newList.add(newItem);
}
return newList;
//若为其他类型,如字符串,直接返回
} else {
return object;
}
}
结语
不知道有没有不通的情况,帮我多测测^^
本文介绍了在Java中如何编写一个工具类,通过递归方法处理各种复杂情况,如Map和List嵌套,确保对外接口参数的key值全部转换为小写。
2349





