由于算法修改,java这边结果处理有个简单的变更,需要对新旧算法输出的结果进行合并,存在相同指标时,以新算法导出的为准...
因为c++库返回的结果是json字符串,于是就写了个简单的合并方法,以便以后有类似需求的时候能重用。
/**
* 将srcJObjStr和addJObjStr合并,如果有重复字段,以addJObjStr为准
* @param srcJObjStr 原jsonObject字符串
* @param addJObjStr 需要加入的jsonObject字符串
* @return srcJObjStr
*/
private String combineJson(String srcJObjStr, String addJObjStr) throws JSONException {
if(addJObjStr == null || addJObjStr.isEmpty()) {
return srcJObjStr;
}
if(srcJObjStr == null || srcJObjStr.isEmpty()) {
return addJObjStr;
}
JSONObject srcJObj = new JSONObject(srcJObjStr);
JSONObject addJObj = new JSONObject(addJObjStr);
combineJson(srcJObj, addJObj);
return srcJObj.toString();
}
@SuppressWarnings("unchecked")
private JSONObject combineJson(JSONObject srcObj, JSONObject addObj) throws JSONException {
Iterator<String> itKeys1 = addObj.keys();
String key, value;
while(itKeys1.hasNext()){
key = itKeys1.next();
value = addObj.optString(key);
srcObj.put(key, value);
}
return srcObj;
}
代码很简单,原理就是对json进行遍历替换,json处理用到了org.json库...
原文:简书ThinkinLiu 博客: IT老五
ps:点击这里可以下载(82.71k)
扫码关注微信公众号--IT老五
微信扫一扫关注公众号,获取更多实用app,订阅地址不定时更新