json中key大小写转换
来源:互联网 发布:各大网络作家作品集 编辑:程序博客网 时间:2024/06/03 13:57
最近工作中遇到json格式的字符串中的key为大写的,需要转换成小写的来解析,开始想使用正则来替换,结果不是很方便,后来考虑把JSONObject重新来封装。
如下json格式:{PWACHECKINFO:{QMART:\"TEST\",NTNUM:\"50\",ECRULE1:\"测试中1\",ECRULE2:'',ECRULE3:'',ECRULE4:'',ECRULE5:'',ECRULE6:'',"}
public static void main(String[] args) {
JSONObject jsonObject = JSONObject.fromObject(json);
//方法一:重新解析jsonObject中的key,转换为小写的key
jsonObject = transToLowerObject(jsonObject);
System.out.println(jsonObject);
String regex = "(\\{|\\,)[a-zA-Z0-9]+:";
Pattern pattern = Pattern.compile(regex);
StringBuffer sb = new StringBuffer();
// 方法二:正则替换
Matcher m = pattern.matcher(json);
while (m.find()) {
m.appendReplacement(sb, m.group().toLowerCase());
}
m.appendTail(sb);
String msg = sb.toString();
System.out.println(msg);
}
/**
* json大写转小写
*
* @param jSONArray1 jSONArray1
* @return JSONObject
*/
public static JSONObject transToLowerObject(JSONObject jSONArray1) {
JSONObject jSONArray2 = new JSONObject();
Iterator it = jSONArray1.keys();
while (it.hasNext()) {
String key = (String) it.next();
Object object = jSONArray1.get(key);
if (object.getClass().toString().endsWith("String")) {
jSONArray2.accumulate(key.toLowerCase(), object);
} else if (object.getClass().toString().endsWith("JSONObject")) {
jSONArray2.accumulate(key.toLowerCase(), transToLowerObject((JSONObject) object));
} else if (object.getClass().toString().endsWith("JSONArray")) {
jSONArray2.accumulate(key.toLowerCase(), transToArray(jSONArray1.getJSONArray(key)));
}
}
return jSONArray2;
}
/**
* jsonArray转jsonArray
*
* @param jSONArray1 jSONArray1
* @return JSONArray
*/
public static JSONArray transToArray(JSONArray jSONArray1) {
JSONArray jSONArray2 = new JSONArray();
for (int i = 0; i < jSONArray1.size(); i++) {
Object jArray = jSONArray1.getJSONObject(i);
if (jArray.getClass().toString().endsWith("JSONObject")) {
jSONArray2.add(transToLowerObject((JSONObject) jArray));
} else if (jArray.getClass().toString().endsWith("JSONArray")) {
jSONArray2.add(transToArray((JSONArray) jArray));
}
}
return jSONArray2;
}
转换后的格式如:
:{"qmart":"TEST","ntnum":"50","ecrule1":"测试中1","ecrule2":"","ecrule3":"",}
- json中key大小写转换
- json中key大小写转换
- js中json对象key值大小写转换
- Java中Json转换Bean对象并忽略大小写!
- Java中大小写转换
- shell中大小写转换
- vim中大小写转换
- shell中大小写转换
- shell中大小写转换
- vim中快速转换大小写
- word中单词大小写转换
- 字符串中大小写的转换
- PHP中字符串大小写转换
- java中大小写字母转换
- Json中key的搜索
- Gson解析不区分大小写,json中多个key对应同一个bean的key
- jackson实体类转换json大小写及空字段忽略
- 使用FastJson转换Json数据首字母大小写问题
- string 与char* char[]之间的转换
- VS2010中如何查看DLL的导出接口
- Mark error
- CSDN博客积分标准,包括博客勋章等(完全版)
- ios 可变参数(va_list,va_start,va_end)
- json中key大小写转换
- 7Reverse Integer
- SAR ADC的工作原理
- 如何在地理数据库中使用游标
- Day9.C++基础
- CV技术公司列表
- (ros/move_base) 怎样终止正在进行的导航navigation
- 温故知新: 正则表达式简记
- C++的类型转换浅析