1.字段转换
//导入依赖包
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
</dependency>
import org.junit.Test;
import com.google.common.base.CaseFormat;
public class GuavaTester {
@Test
public void test() {
System.out.println(CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, "test-data"));//testData
System.out.println(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "test_data"));//testData
System.out.println(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "test_data"));//TestData
System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "testdata"));//testdata
System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "TestData"));//test_data
System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, "testData"));//test-data
System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "testData"));//test_data
}
}
2.将Map中的key由下划线转换为驼峰命名法
import org.apache.commons.beanutils.BeanUtils;
public class test{
public static void main(String[] args){
Map<String,Object> object1 = new HashMap<>();
object1 .put("stu_name","张三");
object1 .put("stu_addr","河北");
Map<String,Object> object11 = formatHumpName(object1 );
Stu stu1 = new stu();
//导包注意
BeanUtils.populate(stu1 ,object11 );
System.out.println(stu1.getstuAddr());
System.out.println(stu1.getstuName());
}
//实体类
@Data
public class Stu{
private String stuName;
private String stuAddr;
/**
* 将Map中的key由下划线转换为驼峰
*
* @param map
* @return
*/
public static Map<String, Object> formatHumpName(Map<String, Object> map) {
Map<String, Object> newMap = new HashMap<String, Object>();
Iterator<Map.Entry<String, Object>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
String newKey = toFormatCol(key);
newMap.put(newKey, entry.getValue());
}
return newMap;
}
public static String toFormatCol(String colName) {
StringBuilder sb = new StringBuilder();
String[] str = colName.toLowerCase().split("_");
int i = 0;
for (String s : str) {
if (s.length() == 1) {
s = s.toUpperCase();
}
i++;
if (i == 1) {
sb.append(s);
continue;
}
if (s.length() > 0) {
sb.append(s.substring(0, 1).toUpperCase());
sb.append(s.substring(1));
}
}
return sb.toString();
}
中key驼峰命名转蛇形命名(下划线)
原json串:
String json={“userName”:“tom1”,“age”:18,“address”:[{“province”:“上海市”},{“ciTy”:“上海市”},{“disrtict”:“静安区”}]}
转换为:
String json={“user_name”:“tom1”,“age”:18,“address”:[{“province”:“上海市”},{“ci_ty”:“上海市”},{“disrtict”:“静安区”}]}
public static void main(String[] args) {
String str = "{\"userName\":\"tom1\",\"age\":18,\"address\":[{\"province\":\"上海市\"},{\"ciTy\":\"上海市\"},{\"disrtict\":\"静安区\"}]}";
JSONObject jsonObject = JSON.parseObject(str);
humpToSnake(jsonObject);
System.out.println(str);
System.out.println(jsonObject.toString());
}
/**
* 驼峰转蛇形 FastJson
*
* @param json {@link JSONObject} {@link JSONArray}
*/
public static void humpToSnake(Object json) {
// 如果是Json对象
if (json instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) json;
Set<String> tempKeys = new HashSet<>(jsonObject.keySet());
for (String key : tempKeys) {
Object value = jsonObject.get(key);
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < key.length(); i++) {
char c = key.charAt(i);
if (Character.isUpperCase(c) && i > 0) {
stringBuilder.append("_");
stringBuilder.append(Character.toLowerCase(c));
} else {
stringBuilder.append(c);
}
}
jsonObject.remove(key);
jsonObject.put(stringBuilder.toString(), value);
humpToSnake(value);
}
} else if (json instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) json;
for (Object o : jsonArray) {
humpToSnake(o);
}
}
}
中key蛇形命名(下划线)转驼峰命名
原json串:
String json= “{‘user_name’:‘ok’,‘user_sex’:0,‘object_info’:{‘business_code’:‘0001’,‘business_info’:{‘business_name’:‘ok’}}}”;
转换为:
String json= “{‘userName’:‘ok’,‘userSex’:0,‘objectInfo’:{‘businessCode’:‘0001’,‘businessInfo’:{‘businessName’:‘ok’}}}”;
@Test
public void testconver() {
JsonUtils jsonUtils =new JsonUtils();
String json= "{'user_name':'ok_ok','user_sex':0,'object_info':{'business_code':'0001','business_info':{'business_name':'ok'}}}";
System.out.println("转换后数据:"+jsonUtils.convert(json));
//jfinal框架返回格式的转换
//("list1:"+((().toJson((sqltopm))).toString()));
}
public class JsonUtils {
public final static void convert(Object json) {
if (json instanceof JSONArray) {
JSONArray arr = (JSONArray) json;
for (Object obj : arr) {
convert(obj);
}
} else if (json instanceof JSONObject) {
JSONObject jo = (JSONObject) json;
Set<String> keys = jo.keySet();
String[] array = keys.toArray(new String[keys.size()]);
for (String key : array) {
Object value = jo.get(key);
String[] key_strs = key.split("_");
if (key_strs.length > 1) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < key_strs.length; i++) {
String ks = key_strs[i];
if (!"".equals(ks)) {
if (i == 0) {
sb.append(ks);
} else {
int c = ks.charAt(0);
if (c >= 97 && c <= 122) {
int v = c - 32;
sb.append((char) v);
if (ks.length() > 1) {
sb.append(ks.substring(1));
}
} else {
sb.append(ks);
}
}
}
}
jo.remove(key);
jo.put(sb.toString(), value);
}
convert(value);
}
}
}
public final static Object convert(String json) {
Object obj = JSON.parse(json);
convert(obj);
return obj;
}
}