后端数据库变量为蛇形,即以下划线 _ 分割,但是前端要求返回的数据为驼峰命名,怎么办?手动改?当然是写方法转换啦~
蛇形转驼峰算法如下:
/***
* 下划线命名转为驼峰命名.
*
* @param para 下划线命名的字符串
*/
private String underlineToHump(String para) {
if (StringUtils.isBlank(para)) {
return para;
}
StringBuilder result = new StringBuilder();
String[] a = para.split("_");
if (a.length != 1) {
for (String s : a) {
if (result.length() == 0) {
result.append(s.toLowerCase());
} else {
result.append(s.substring(0, 1).toUpperCase());
result.append(s.substring(1).toLowerCase());
}
}
} else {
result.append(a[0].substring(0, 1).toLowerCase());
result.append(a[0].substring(1));
}
return result.toString();
}
还不够好用?下面来封装多一层吧~
数据结构为Map<String,Object> 时
/**
* 蛇形转驼峰.
*
* @param map map里面的key为蛇形
* @return newMap newMap里面的key为驼峰
*/
private Map<String, Object> convertToHump(Map<String, Object> map) {
Map<String, Object> returnMap = new HashMap<>();
for (Entry<String, Object> data : map.entrySet()) {
String key = underlineToHump(data.getKey());
returnMap.put(key, data.getValue());
}
return returnMap;
}
数据结构为 List<Map<String,Object>> 时
/**
* 蛇形转驼峰.
* @param datas
* @return
*/
protected List<Map<String, Object>> underlineToHumpList(List<Map<String, Object>> datas) {
List<Map<String, Object>> tempDatas = new ArrayList<Map<String, Object>>(datas.size());
for (Map<String, Object> map : datas) {
tempDatas.add(convertToHump(map));
}
return tempDatas;
}
如果是其他的话自己再作修改吧~码字不易~留个赞呗~