API 를 만들고 있습니다.
요청하는 값 중에서 qrReader를 키 : Value로 보내면 백단에서 그것을 받아서 처리합니다.
"reservationHistoryDetail": [
{
"rdSeq": "200",
"gdPackageSeq": "GD20",
"gdPackageName": "테스트",
"rdPerson": 2,
"rdPrice": 20000,
"rdAmount": 40000,
"plName": "2",
"plSeq": "P6",
"sdStartTime1": "09",
"sdEndTime1": "12",
"sdStartTime2": "00",
"sdEndTime2": "00",
"inspectInfo": [
"3IE3TgUVVtSlhS==asjdlkasjhdlwbda",
"i3z2Oih+1r8aoslkjhdlaksjhdl2"
]
}
],
또한 response 하는 값 중에서 inspectInfo의 값을 뽑아서 복화하는 것인데
뽑을 때 for문과 향상된 for문을 써봤습니다.
인덱스가 무조건 사용될 필요가 없어 향상된 for문이 가능합니다.
일반적인 for문
if("Y".equals(parameterMap.get("qrReader"))) {
log.warn(">>>>>>>>>>>>>>>>> qrReader Y : " + parameterMap.get("qrReader"));
for(int i = 0; i < reservationHistory.size(); i++){
List<Map<String, Object>> reservationHistoryDetail = (List<Map<String, Object>>) reservationHistory.get(i).get("reservationHistoryDetail");
for(int b = 0; b < reservationHistoryDetail.size(); b++){
List<String> inspectInfo = (List<String>) reservationHistoryDetail.get(b).get("inspectInfo");
List<String> resultInspectNo = new ArrayList<>();
for(int j = 0; j < inspectInfo.size(); j++) {
resultInspectNo.add(encryptionUtil.decrypt(inspectInfo.get(j), commonEncryptionAlg, commonEncryptionKey));
}
reservationHistoryDetail.get(b).put("inspectInfo", resultInspectNo);
}
}
}
향상된 for문
if("Y".equals(parameterMap.get("qrReader"))) {
for(Map<String, Object> map : reservationHistory) {
List<Map<String, Object>> reservationHistoryDetail = (List<Map<String, Object>>) map.get("reservationHistoryDetail");
for(Map<String, Object> stringObjectMap : reservationHistoryDetail) {
List<String> inspectInfo = (List<String>) stringObjectMap.get("inspectInfo");
List<String> resultInspectNo = new ArrayList<>();
for(String s : inspectInfo) {
resultInspectNo.add(encryptionUtil.decrypt(s, commonEncryptionAlg, commonEncryptionKey));
}
stringObjectMap.put("inspectInfo", resultInspectNo);
}
}
}