Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

KKGRAM

Java String To JsonArray & JsonArray To String[] 본문

개발

Java String To JsonArray & JsonArray To String[]

kkgram 2016. 1. 17. 11:52



서버랑 통신하고 하다보면 json 형식을 주로 쓴다. 주로라기보다 거의 무조건 적이다. 근데 머리가 항상 빠가라 json 형태를 받아와서 이것저것 굴려 먹어야 할 때마다 인터넷에 검색하고있다. 그냥 모든 검색 내용을 내 블로그에 때려박자..! 먼저 이번 플젝에서는 아직 서버가 구현되지 않았기 때문에 서버에서 데이터를 받아왔을 때를 가정하고 해야한다. 


String에 json형태의 문자열을 만들어준다.

        String s = "[{\"addr\":\"전남\"},{\"addr\":\"전북\"},{\"addr\":\"대구\"},"+
                    "{\"addr\":\"대전\"},{\"addr\":\"경기\"},{\"addr\":\"충북\"},"+
                    "{\"addr\":\"인천\"},{\"addr\":\"부산\"},{\"addr\":\"울릉\"},"+
                    "{\"addr\":\"청주\"},{\"addr\":\"충남\"},{\"addr\":\"제주\"},{\"addr\":\"서울\"}]";


이렇게 들어온 String를 JsonArray형태로 바꿔주는 것 또한 간단하다.

       try {
            JSONArray arr = new JSONArray(s);
        } catch (JSONException e) {
            e.printStackTrace();
        }


그리고 만들어진 JsonArray형태를 String[] 에 담기위해서 하나의 함수를 작성한다.

    
    public static String[] getStringArray(JSONArray jsonArray) throws JSONException {
        String[] stringArray = null;
        int length = jsonArray.length();
        if(jsonArray!=null){
            stringArray = new String[length];
            for(int i=0;i<length;i++){
                stringArray[i]= jsonArray.getJSONObject(i).getString("addr");
                //"addr"에서는 가져오고 싶은 데이터의 key값을 입력해주면 된다.
            }
        }
        return stringArray;
    }


전체 형태로 보면 소스는 이렇다.

        String s = "[{\"addr\":\"전남\"},{\"addr\":\"전북\"},{\"addr\":\"대구\"},"+
                    "{\"addr\":\"대전\"},{\"addr\":\"경기\"},{\"addr\":\"충북\"},"+
                    "{\"addr\":\"인천\"},{\"addr\":\"부산\"},{\"addr\":\"울릉\"},"+
                    "{\"addr\":\"청주\"},{\"addr\":\"충남\"},{\"addr\":\"제주\"},{\"addr\":\"서울\"}]";
        try {
            JSONArray arr = new JSONArray(s);
            location = getStringArray(arr);
        } catch (JSONException e) {
            e.printStackTrace();
        }

    public static String[] getStringArray(JSONArray jsonArray) throws JSONException {
        String[] stringArray = null;
        int length = jsonArray.length();
        if(jsonArray!=null){
            stringArray = new String[length];
            for(int i=0;i<length;i++){
                stringArray[i]= jsonArray.getJSONObject(i).getString("addr");
                //"addr"에서는 가져오고 싶은 데이터의 key값을 입력해주면 된다.
            }
        }
        return stringArray;
    }


이제 그만 검색하고 내 블로그에서 확인하자^_ㅠ... 이랬는데 내 블로그에 올려놓은것도 까먹을 느낌.

Comments