jsonobject.containskey
时间: 2023-04-22 19:04:04 浏览: 225
jsonobject.containskey是一个Java中的方法,用于判断一个JSONObject对象中是否包含指定的键。如果包含,则返回true,否则返回false。该方法的具体实现可以参考Java官方文档或相关的开发文档。
相关问题
List projectSituation = datacenterV5Dao.getProjectSituations(jsonObject.getString("pid"), jsonObject.getString("type"),groupid); List projectSituations = datacenterV5Dao.getProjectSituation(jsonObject.getString("pid"), jsonObject.getString("type"),groupid); 计算这两个list中相同的cs.taskname ,nui.realname,ni.name 分别放在一个map中
好的,我理解你的问题了。你想要将两个 List 中相同的 cs.taskname、nui.realname 和 ni.name 分别放到一个 Map 中。我假设 cs.taskname、nui.realname 和 ni.name 都是 String 类型的,那么可以按照以下步骤进行:
1. 创建一个 Map 对象,用于存储相同的 cs.taskname、nui.realname 和 ni.name。代码如下:
```
Map<String, List<String>> resultMap = new HashMap<>();
```
2. 遍历第一个 List,将其中的 cs.taskname、nui.realname 和 ni.name 组合成一个字符串作为 Map 的 key,将对应的值存放到 Map 的 value 中。代码如下:
```
for (Object obj : projectSituation) {
Map<String, Object> map = (Map<String, Object>) obj;
String key = map.get("taskname") + "," + map.get("realname") + "," + map.get("name");
List<String> valueList = new ArrayList<>();
valueList.add(map.get("someValue1").toString()); // 将需要存放的值添加到 valueList 中
valueList.add(map.get("someValue2").toString());
// ...
if (resultMap.containsKey(key)) { // 如果 Map 中已经存在该 key,则将 valueList 添加到对应的列表中
resultMap.get(key).addAll(valueList);
} else { // 否则,创建一个新的列表,并将 valueList 添加到其中
resultMap.put(key, valueList);
}
}
```
3. 遍历第二个 List,将其中的 cs.taskname、nui.realname 和 ni.name 组合成一个字符串作为 Map 的 key,将对应的值存放到 Map 的 value 中。代码如下:
```
for (Object obj : projectSituation) {
Map<String, Object> map = (Map<String, Object>) obj;
String key = map.get("taskname") + "," + map.get("realname") + "," + map.get("name");
List<String> valueList = new ArrayList<>();
valueList.add(map.get("someValue1").toString()); // 将需要存放的值添加到 valueList 中
valueList.add(map.get("someValue2").toString());
// ...
if (resultMap.containsKey(key)) { // 如果 Map 中已经存在该 key,则将 valueList 添加到对应的列表中
resultMap.get(key).addAll(valueList);
} else { // 否则,创建一个新的列表,并将 valueList 添加到其中
resultMap.put(key, valueList);
}
}
```
4. 遍历 Map,输出其中的 key 和 value。代码如下:
```
for (Map.Entry<String, List<String>> entry : resultMap.entrySet()) {
String key = entry.getKey();
List<String> valueList = entry.getValue();
System.out.println("Key: " + key);
System.out.println("Value: " + valueList);
}
```
这样,就可以将两个 List 中相同的 cs.taskname、nui.realname 和 ni.name 分别放到一个 Map 中了。
Map<String, OrganizationEo> organizationEoMap = comDataComponent.getAllOrganizationMap(); Map<String, UserEo> userEoMap =comDataComponent.getUserMapByUid(); String code = ""; SchemaColumnRuleResponseDto responseDto = new SchemaColumnRuleResponseDto(); BeanUtils.copyProperties(requestDto,responseDto); //用户是否存在 if(!CollectionUtils.isEmpty(requestDto.getColumnPermissionUserList())){ for (String userUid : requestDto.getColumnPermissionUserList()) { if(!userEoMap.containsKey(userUid)){ code = Message.NOT_EXIST.getCode(); responseDto.setResultCode(code); responseDto.setResultMsg(userUid+messageInfo.getMessageByCode(code)); return responseDto; } } schemaColumnRuleEo.setColumnPermissionUserList(JSONObject.toJSONString(requestDto.getColumnPermissionUserList())); } //用户组织是否存在 if(!CollectionUtils.isEmpty(requestDto.getColumnPermissionOrgList())){ List<String> orgList = requestDto.getColumnPermissionOrgList(); for (String orgCode : orgList) { if(!organizationEoMap.containsKey(orgCode)){ code = Message.NOT_EXIST.getCode(); responseDto.setResultCode(code); responseDto.setResultMsg(orgCode+messageInfo.getMessageByCode(code)); return responseDto; } } schemaColumnRuleEo.setColumnPermissionOrgList(JSONObject.toJSONString(orgList)); } return new SchemaColumnRuleResponseDto();代码优化
可以尝试优化代码,将重复的逻辑封装成方法,提高代码的复用性和可读性,示例代码如下:
```
Map<String, OrganizationEo> organizationEoMap = comDataComponent.getAllOrganizationMap();
Map<String, UserEo> userEoMap = comDataComponent.getUserMapByUid();
String code = "";
SchemaColumnRuleResponseDto responseDto = new SchemaColumnRuleResponseDto();
BeanUtils.copyProperties(requestDto, responseDto);
// 验证用户是否存在
if (!CollectionUtils.isEmpty(requestDto.getColumnPermissionUserList())) {
validateExistence(requestDto.getColumnPermissionUserList(), userEoMap, responseDto, messageInfo, Message.NOT_EXIST);
schemaColumnRuleEo.setColumnPermissionUserList(JSONObject.toJSONString(requestDto.getColumnPermissionUserList()));
}
// 验证组织是否存在
if (!CollectionUtils.isEmpty(requestDto.getColumnPermissionOrgList())) {
validateExistence(requestDto.getColumnPermissionOrgList(), organizationEoMap, responseDto, messageInfo, Message.NOT_EXIST);
schemaColumnRuleEo.setColumnPermissionOrgList(JSONObject.toJSONString(requestDto.getColumnPermissionOrgList()));
}
return responseDto;
// 封装验证存在方法
private static void validateExistence(List<String> idList, Map<String, ?> dataMap, SchemaColumnRuleResponseDto responseDto,
MessageInfo messageInfo, Message notExistMessage) {
for (String id : idList) {
if (!dataMap.containsKey(id)) {
String code = notExistMessage.getCode();
responseDto.setResultCode(code);
responseDto.setResultMsg(id + messageInfo.getMessageByCode(code));
return;
}
}
}
```
阅读全文