2020년 4월 17일 금요일

json파싱해서 해쉬맵으로

해당 내용은 참고 용으로 만들어 보았습니다 
해쉬맵으로 만들어서 공통으로 만든 부분으로 호출 할라고함
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
@SuppressWarnings("unchecked")
@RequestMapping(value = "/jsonMap", method = RequestMethod.POST)
public ArrayList<HashMap<String, String>> jsonMap (HttpServletRequest request) {
//최종 완성될 JSONObject 선언(전체)
        JSONObject jsonObject = new JSONObject();

        //person의 JSON정보를 담을 Array 선언
        JSONArray personArray = new JSONArray();

        //person의 한명 정보가 들어갈 JSONObject 선언
        JSONObject personInfo = new JSONObject();

        //정보 입력
        personInfo.put("name", "송강호");
        personInfo.put("age", "25");
        personInfo.put("gender", "남자");
        personInfo.put("nickname", "남궁민수");
        //Array에 입력
        personArray.add(personInfo);

        personInfo = new JSONObject();
        personInfo.put("name", "전지현");
        personInfo.put("age", "21");
        personInfo.put("gender", "여자");
        personInfo.put("nickname", "예니콜");
        personArray.add(personInfo);
        
        //전체의 JSONObject에 사람이란 name으로 JSON의 정보로 구성된 Array의 value를 입력
        jsonObject.put("persons", personArray);
        
//        String jsonInfo = jsonObject.toJSONString();
//        StringUtil.jsonParsing(jsonInfo);
StringUtil.jsonParsing(jsonObject.toJSONString());
return StringUtil.jsonParsing(jsonObject.toJSONString());
}

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲


json 형태를 받아서.... 해쉬맵으로 리턴....
@SuppressWarnings("unchecked")
public static ArrayList<HashMap<String, String>> jsonParsing (String string){
HashMap<String, String> map = new HashMap<String,String>();
ArrayList <HashMap<String,String>> mapList = new ArrayList<HashMap<String,String>>();
JSONParser jsonParse  = new JSONParser();
JSONObject jsonObj = null;
JSONArray jsonObj2 = null;
JSONObject jsonObjList  = null;
String sJsonObj = "";

if(false == StringUtil.isEmpty(string)){
try {
    
jsonObj = (JSONObject)jsonParse.parse(string);
for(int i=0; i<jsonObj.size(); i++){
// key set 받아오기 
Set<String> key = jsonObj.keySet(); 
// Iterator 설정
            Iterator<String> iter = key.iterator();
            
            // 각각 키 값 출력
            while(iter.hasNext()){
                String keyname = iter.next();
                sJsonObj = jsonObj.get(keyname).toString();//키 명으로 뽑아서 문자열 담기
            }
            
}
jsonObj2 =  (JSONArray)jsonParse.parse(sJsonObj);
if(jsonObj2.size()>0){
for(int i=0; i<jsonObj2.size(); i++){
jsonObjList = (JSONObject)jsonParse.parse(jsonObj2.get(i).toString());
map = new HashMap<String,String>();
Set<String> key = jsonObjList.keySet(); // key set 받아오기 
            Iterator<String> iter = key.iterator(); // Iterator 설정
            
while(iter.hasNext()){
                String keyname = iter.next();
                jsonObjList.get(keyname).toString();
                
                map.put(keyname, (String) jsonObjList.get(keyname));
}
mapList.add(map);
}
}
//                for(int ii =0; ii<mapList.size(); ii++){//해쉬맵 확인 목적 부분
//                 System.out.println(mapList.get(ii));
//                 System.out.println(mapList.get(ii).get("nickname"));
//                }
} catch (ParseException e) {
e.getMessage();
}
}
return mapList;
}

댓글 없음:

댓글 쓰기