본문 바로가기
안드로이드

[Android] JSON Data 송신 방법

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

1


안드로이드에서 서버와 데이터를 주고받는 많은 방법 중에 많이 사용되는 포맷인

JSON 포맷을 통해 송수신 하는 방법에 대해 알아보도록 하겠습니다

 

먼저 안드로이드에서 JSON 을 사용하기 위해서 별도로 설치해야 할  SDK는 없습니다

기본적으로 JSONObject라는 것을 지원하기 때문에 사용 방법만 알면 쉽게 접근할 수 있습니다.

 

 

JSON 데이터 송신


먼저 JSON 데이터를 송신하기 위해서는 JSON Object를 통해 데이터를 가공해야 합니다

private void SetJSON(){
	JSONObject object = new JSONObject();
	try{
    	object.put("TestName","홍길동");
        object.put("TestAddress","인천");
        object.put("TestAge","33");
    }catch(JSONException e){
    	e.printStackTrace();
    }
}

만드는 방법은 간단한데 먼저 JSON 형식을 담아줄 JSONObject를 만들어 준 뒤에

put이라는 함수를 통해 키와 데이터 값으로 object에 넣어주기만 하면 됩니다.

결과 : { "TestName" : "홍길동" , "TestAddress" : "인천" , "TestAge" : "33" }

 

 

JSON Array 송신


JSON에 배열을 넣기 위해서는 JSONArray를 사용해야 합니다

그리고 기존에 안드로이드에 선언된 배열의 인자를 JSONArray에 매칭 하여

Object에 넣어주면 배열 또한 JSON 포맷으로 만들 수 있습니다

private void SetJSON(){
    JSONObject object = new JSONObject();
    JSONArray json_array = new JSONArray();
	try{
    	object.put("TestName","홍길동");
        object.put("TestAddress","인천");
        object.put("TestAge","33");
        for(int i=0; i<marray.size; i++){
            JSONObject array_object = new JSONObject();
            array_object.put("array_data1",marray[i]);
            json_array.put(array_object);
        }
        object.put("list",json_array);
    }catch(JSONException e){
    	e.printStackTrace();
    }
}

위에 보면 marray라는 ArrayList가 있는데 여기에 들어간 내용은 다음과 같다고 가정하겠습니다

ArrayList<String>() marray = new ArrayList<String>();
marray.add("test1");
marray.add("test2");
marray.add("test3");

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

결과 : { "TestName" : "홍길동" , "TestAddress" : "인천" , "TestAge" : "33", "list" : [ { "array_data1" : "test1" }, { "array_data2" : "test2" }, { "array_data3" : "test3" } ] }

 

728x90
반응형

댓글