728x90
이전 포스팅을 통해 JSON 데이터를 만들고 전송하는 방법에 대해 알아보았습니다
이번 포스팅에서는 JSON 데이터를 서버로부터 수신했을 때 어떻게 파싱 해서 사용하는지
저번 포스팅과 동일하게 일반 데이터와 배열데이터로 나누어서 알아보도록 하겠습니다
먼저 JSON 데이터를 송신하는 방법은 아래 링크에서 확인 가능합니다
2022.08.03 - [안드로이드] - [Android] JSON Data 송신 방법
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
반응형
'안드로이드' 카테고리의 다른 글
[Android] xml 배경 투명도 설정하기 (2) | 2022.08.09 |
---|---|
[Android] String 배열 초기화 (2) | 2022.08.04 |
[Android] JSON Data 송신 방법 (2) | 2022.08.03 |
[Android] 배열을 활용한 객체 등록 (3) | 2022.07.23 |
[Android] java.lang.RuntimeException 에러 해결 (6) | 2022.06.28 |
댓글