JSON字符串下划线属性名转驼峰

//将JSON字符串下划线属性名转为驼峰
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;
}

//测试
public static void main(String[] args) {
String a = “{“a_a”:“123”,“b_b”:“789”}”;
System.out.println(convert(a));
//输出结果{“aA”:“123”,“bB”:“789”}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值