본문 바로가기
프로그래밍/Java

[Java] String to JsonArray 변환

by Youngs_ 2023. 4. 13.

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

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

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

-> 즉! JSONArray("JSONArray로 변환할 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;
}

 


출처 : https://kkgram.tistory.com/2

댓글