안드로이드 스튜디오에서 "parsing(파싱)"은 일반적으로 데이터를 분석하고 필요한 정보를 추출하는 과정을 의미
일반적으로 네트워크 요청을 통해 가져온 데이터를 처리하는 과정으로 구현
주로 JSONObject 또는 JSONArray 클래스를 사용하여 JSON 데이터를 파싱
// 1. request queue 를 만든다.
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
// 2. request 를 만든다. => 응답 데이터의 JSON 형식을 먼저 확인한다.
JsonObjectRequest request = new JsonObjectRequest(
// 가져올 방식
Request.Method.GET,
// URL
"https://block1-image-test.s3.ap-northeast-2.amazonaws.com/posting.json",
// 보낼 데이터 X => null
null,
// 성공했을때 받아온 데이터 처리
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
progressBar.setVisibility(View.GONE);
// response에 데이터가 있으니 이 데이터를 Parsing
try {
JSONArray dataArray = response.getJSONArray("data");
// 하나씩 꺼내서 메모리에 객체 생성하고
// 여러 개니까 어레이리스트에 저장
// 모든 데이터를 전부 저장하고 나면 화면에 표시
for(int i=0; i<dataArray.length(); i++){
JSONObject data = dataArray.getJSONObject(i);
int id = data.getInt("id");
int userId = data.getInt("userId");
String title = data.getString("title");
String body = data.getString("body");
Posting posting = new Posting(id, userId, title, body);
postingArrayList.add(posting);
}
adapter = new PostingAdapter(MainActivity.this, postingArrayList);
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
Toast.makeText(MainActivity.this,
"파싱 에러",
Toast.LENGTH_SHORT).show();
Log.i("ACTION MAIN", e.toString());
return;
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
progressBar.setVisibility(View.GONE);
Toast.makeText(MainActivity.this,
"네트워크 통신 에러",
Toast.LENGTH_SHORT).show();
Log.i("ACTION MAIN", volleyError.toString());
}
}
);
// 3. 만든 request 를 queue 에 넣어준다.
queue.add(request);
'Android Studio' 카테고리의 다른 글
[Android Studio] 안드로이드 Retrofit 라이브러리 사용하기 (0) | 2024.06.13 |
---|---|
[Android Studio] 이미지 로딩 라이브러리 Glide (1) | 2024.06.12 |
[Android Studio] 안드로이드 네트워크 통신 Volley 라이브러리 (1) | 2024.06.11 |
[Android Studio] Activity 간의 데이터 전달 (단방향, 양방향) (0) | 2024.06.07 |
[Android Studio] Activity 라이프 사이클 Life Cycle (0) | 2024.06.07 |