一、需求
新增接口,数据返回时不想新建一个javaBena 来映射数据库字段,有不想改动前端接收参数。
解决思路:
1、使用Map进行接收
2、数据接收后,对Map的键进行驼峰转换。
二、实现
1、工具方法
public static List toListCamelCase(List<Map> list) {
if (list != null) {
for(int i = 0; i < list.size(); ++i) {
Map<String, Object> map = (Map)list.get(i);
Map<String, Object> newMap = new HashMap();
Iterator var5 = map.keySet().iterator();
while(var5.hasNext()) {
String columnName = (String)var5.next();
Object obj = map.get(columnName);columnName = toCamelCase(columnName);
newMap.put(columnName, obj);
}
list.set(i, newMap);
}
}
return list;
}
public static String toCamelCase(String s) {
if (s == null) {
return null;
} else {
s = s.toLowerCase();
StringBuilder sb = new StringBuilder(s.length());
boolean upperCase = false;
for(int i = 0; i < s.length(); ++i) {
char c = s.charAt(i);
if (c == '_') {
upperCase = true;
} else if (upperCase) {
sb.append(Character.toUpperCase(c));
upperCase = false;
} else {
sb.append(c);
}
}
return sb.toString();
}
}
2、调用
List<Map> list = new ArrayList<>();
list = service.*;
list = toListCamelCase(list);