业务场景中需要JSONArray中JSONObject的键截取替换为最后一个"&"后的字符,如:
order_header&source_code替换为 source_code。
//模式生成一个JSONArray
Map map = new HashMap();
map.put("order_header&source_code","B1");
map.put("order_header&order_code","C1");
map.put("order_header&bp_code","A1");
JSONObject jsonObject = new JSONObject(map);
JSONArray jsonArray = new JSONArray();
jsonArray.set(0,jsonObject);
for (int i = 0;i<jsonArray.size();i++){
JSONObject jo = jsonArray.getJSONObject(i);
Map m = JSON.parseObject(jo.toString(),Map.class);
Map newM = new HashMap();
for (Object obj :m.keySet()){
//截取字符串
if (obj.toString().contains("&")){
String[] str = obj.toString().split("&");
String newKey = str[str.length-1];
newM.put(newKey,m.get(obj));
}
}
JSONObject jsonObject2 = new JSONObject(newM);
//替换
jsonArray.set(i,jsonObject2);
}