2020년 4월 16일 목요일

java ArrayList HashMap를 Json으로

공통 모듈화 해본 부분
public static JSONObject hashMapJson (ArrayList<HashMap<String, String>> mapList ){
JSONObject data = new JSONObject();
JSONArray req_array = new JSONArray();
JSONObject jsonObject = new JSONObject();

        if(mapList.size() >0){
        for (int i=0; i<mapList.size(); i++) {
        data = new JSONObject();
        for(String key: mapList.get(i).keySet()){
String sValue  = "";
sValue = mapList.get(i).get(key);
        data.put(key, sValue);
        }
        req_array.add(data);
        }
        jsonObject.put("list", req_array);
        }
        return jsonObject;
}

호출해서 사용해보는 부분
@RequestMapping(value = "/xmlFormJson", method = RequestMethod.POST)
public JSONObject xmlFormJson (HttpServletRequest request) {
ArrayList <HashMap<String,String>> mapList = new ArrayList<HashMap<String,String>>();
            // xml 파싱하기 요청하기
        String result = "<?xml version='1.0' encoding='UTF-8' standalone='no'?>"+
"<AllotmentBookingReport>"+
"<TransactionType>"+
"<DataFrom>FromTravelAgency</DataFrom>"+
"<DataClassification>NewBookReport</DataClassification>"+
"<DataID>2007092600006</DataID>"+
"<SystemDate>2007-09-27</SystemDate>"+
"</TransactionType>"+
"<AccommodationInformation>"+
"<AccommodationName>ナッツホテル</AccommodationName>"+
"<AccommodationCode>XXX-001</AccommodationCode>"+
"</AccommodationInformation>"+
"<SalesOfficeInformation>"+
"<SalesOfficeCompanyName>webmark</SalesOfficeCompanyName>"+
"<SalesOfficeName>ナッツホテル殿</SalesOfficeName>"+
"<SalesOfficeEmail>test@seanuts.co.jp</SalesOfficeEmail>"+
"<SalesOfficePhoneNumber>03-3363-0810</SalesOfficePhoneNumber>"+
"</SalesOfficeInformation>"+
"<BasicInformation>"+
"<TravelAgencyBookingNumber>XXX00352</TravelAgencyBookingNumber>"+
"<TravelAgencyBookingDate>20070223</TravelAgencyBookingDate>"+
"<AccommodationConfirmationNumber />"+
"<GuestOrGroupNameSingleByte>テスト イチロウ</GuestOrGroupNameSingleByte>"+
"<GuestOrGroupNameKanjiName>テスト イチロウ</GuestOrGroupNameKanjiName>"+
"<GroupNameWelcomeBoard />"+
"<CheckInDate>2005-03-30</CheckInDate>"+
"<CheckInTime>16:00:00</CheckInTime>"+
"<Nights>1</Nights>"+
"<TotalRoomCount>4</TotalRoomCount>"+
"<GrandTotalPaxCount>6</GrandTotalPaxCount>"+
"<TotalPaxMaleCount>6</TotalPaxMaleCount>"+
"<TotalPaxFemaleCount>0</TotalPaxFemaleCount>"+
"<TotalChildA70Count>0</TotalChildA70Count>"+
"<TotalChildB50Count>0</TotalChildB50Count>"+
"<TotalChildC30Count>0</TotalChildC30Count>"+
"<TotalChildDNoneCount>0</TotalChildDNoneCount>"+
"<TypeOfGroup>Others</TypeOfGroup>"+
"<PackagePlanName>プランA</PackagePlanName>"+
"<PackagePlanCode>XXX-003</PackagePlanCode>"+
"<MealCondition>WithoutMeal</MealCondition>"+
"<SpecificMealCondition>None Specified</SpecificMealCondition>"+
"</BasicInformation>"+
"</AllotmentBookingReport>";
       
        mapList.addAll(StringUtil.xmlForm(result,"//AllotmentBookingReport//TransactionType"));
        mapList.addAll(StringUtil.xmlForm(result,"//AllotmentBookingReport//AccommodationInformation"));
        mapList.addAll(StringUtil.xmlForm(result,"//AllotmentBookingReport//SalesOfficeInformation"));
        System.out.println("-------------------------------------");
        System.out.println(StringUtil.hashMapJson(mapList));
        System.out.println("-------------------------------------");
return StringUtil.hashMapJson(mapList);
}

댓글 없음:

댓글 쓰기