본문 바로가기
안드로이드

[Android] JSON 데이터 수신 방법

by 코딩히어로 2022. 8. 3.
728x90

1


이전 포스팅을 통해 JSON 데이터를 만들고 전송하는 방법에 대해 알아보았습니다

이번 포스팅에서는 JSON 데이터를 서버로부터 수신했을 때 어떻게 파싱 해서 사용하는지

저번 포스팅과 동일하게 일반 데이터와 배열데이터로 나누어서 알아보도록 하겠습니다

 

먼저 JSON 데이터를 송신하는 방법은 아래 링크에서 확인 가능합니다

2022.08.03 - [안드로이드] - [Android] JSON Data 송신 방법

 

[Android] JSON Data 송신 방법

안드로이드에서 서버와 데이터를 주고받는 많은 방법 중에 많이 사용되는 포맷인 JSON 포맷을 통해 송수신 하는 방법에 대해 알아보도록 하겠습니다 먼저 안드로이드에서 JSON 을 사용하기 위해

codinghero.tistory.com

 

 

JSON 데이터 수신


서버로부터 데이터를 받는 함수를 하나 만들어보도록 하겠습니다

String test1, test2, test3;

private void receiveJSON(JSONObject object){
    test1 = object.getString("test1");
    test2 = object.getString("test2");
    test3 = object.getString("test3");
}

위 함수에서 인자로 JSONObject를 받아서 해당하는 Key값을 통해 String 데이터를 읽어옵니다

test1 ~ 3까지의 데이터를 읽어오는 예제로 JSON 데이터는 다음과 같습니다

{ "test1" : "data1", "test2" : "data2", "test3" : "data3" }

위 함수를 통해 출력하게 되면 data1, data2, data3이 출력됩니다

 

 

JSON 배열 데이터 수신


배열을 저장하는 방식이 달랐던 것처럼 읽어오는 방식도 다른데

동일하게 JSONArray를 통해서 값을 읽어옵니다

{ "list" : [{ "list_data" : "abc" }, { "list_data" : "def" }, { "list_data" : "sss" }] }

위와 같이 배열 형태의 JSON코드가 수신되었을 때 다음 코드의 함수를 통해 데이터를 파싱 합니다

String list1, list2, list3;
ArrayList<String>() marray = new ArrayList<String>();

private void receiveJSON(JSONObject object){
    JSONObject jsonobject = new JSONObject(object);
    JSONArray jsonarray = new JSONArray(jsonobject.getString("list"));
    for(int i=0; i<jsonarray.length(); i++){
    	JSONObject jobject = jsonArray.getJSONObject(i);
        marray.add(jobject.getString("list_data");
    }
}

위 코드의 결과는 다음과 같습니다

marray.get(0);     // abc
marray.get(1);     // def
marray.get(2);     // sss

 

728x90
반응형

댓글