private boolean parseBookLanguage(final String jsonstr, final String orgGid) throws Exception {
//解析一个json串
JSONObject obj = JSONObject.parseObject(jsonstr);
// 返回true
if (obj.getBooleanValue(“RESULT”)) {
JSONArray arr = obj.getJSONArray(“DATA”);
开始考虑到用Set集合去重 但是set集合会将后面添加的对象删掉 保存的是原来的对象
CopyOnWriteArraySet和CopyOnWriteArrayList是一个安全线程的集合
// final Setset=new CopyOnWriteArraySet<>();
final List data = new CopyOnWriteArrayList<>();
for (int i = 0; i < arr.size(); i++) {
JSONObject langDicObject = arr.getJSONObject(i);
String langCodeSrc = langDicObject.getString(“LANGCODE”);
String langCode = IdGenerator.encodeBase64(langCodeSrc, orgGid);
OrgBookLangDicBO bookLangDicBO = new OrgBookLangDicBO(langCode, langDicObject.getString(“LANGNAME”),orgGid, langCodeSrc);
// 添加之前先查询之前集合是否包含这个对象
if (data.contains(bookLangDicBO)) {
data.remove(bookLangDicBO);//remove会将原来的移除
}
data.add(bookLangDicBO);
}
// 备份
boolean flag = dataTransferDAO.backupBookLanguage(orgGid);
// 删除
flag = dataTransferDAO.deleteBookLanguage(orgGid);
// 添加
flag = dataTransferDAO.insertBookLanguage(data);
return flag;
} else {
// 返回的false
throw new Exception(obj.toJSONString());
}
}
//但是这样处理会比较繁琐 直接在循环获取对象的时候 从后往前取对象 避免就可以不用再替换了
private boolean parseBookLanguage(final String jsonstr, final String orgGid) throws Exception {
//解析一个json串
JSONObject obj = JSONObject.parseObject(jsonstr);
// 返回true
if (obj.getBooleanValue(“RESULT”)) {
JSONArray arr = obj.getJSONArray(“DATA”);
final Set<OrgBookLangDicBO>set=new CopyOnWriteArraySet<>();
// final List<OrgBookLangDicBO> data = new CopyOnWriteArrayList<>();
for (int i = arr.size()-1; i >=0; i--) {
JSONObject langDicObject = arr.getJSONObject(i);
String langCodeSrc = langDicObject.getString("LANGCODE");
String langCode = IdGenerator.encodeBase64(langCodeSrc, orgGid);
OrgBookLangDicBO bookLangDicBO = new OrgBookLangDicBO(langCode, langDicObject.getString("LANGNAME"),orgGid, langCodeSrc);
// 添加之前先查询之前集合是否包含这个对象
set.add(bookLangDicBO);
// 备份
boolean flag = dataTransferDAO.backupBookLanguage(orgGid);
// 删除
flag = dataTransferDAO.deleteBookLanguage(orgGid);
// 添加
flag = dataTransferDAO.insertBookLanguage(data);
return flag;
} else {
// 返回的false
throw new Exception(obj.toJSONString());
}
}