Class 255- Android-এ JSONArray Request এবং ডেটা পার্স করা
আজকের পোস্টে আমরা দেখব কিভাবে Android Studio-তে Java ব্যবহার করে JSONArray রিকোয়েস্ট করা যায়, সার্ভার থেকে ডেটা পার্স (Parse) করা যায়, এবং সেই ডেটা ব্যবহার করে একটি TextView-এ সেট করা যায়। আমরা Volley Library ব্যবহার করব এই কাজটি করার জন্য।
শুরুতে কিছু মৌলিক ধারণা
1. JSONArray কী?
JSONArray হল একটি JSON অবজেক্ট যা অ্যারে আকারে ডেটা সংরক্ষণ করে। উদাহরণস্বরূপ:
1
2
3
4
[
{"id": 1, "name": "John"},
{"id": 2, "name": "Jane"}
]
2. Volley Library কী?
Volley হল একটি HTTP লাইব্রেরি যা আমাদের সার্ভারের সাথে ডেটা আদান-প্রদান করতে সাহায্য করে। এটি খুব সহজ এবং দ্রুত কাজ করে।
প্রয়োজনীয় স্টেপসমূহ
স্টেপ ১: Android Studio প্রজেক্ট তৈরি করুন
- Android Studio ওপেন করুন।
- File > New > New Project সিলেক্ট করুন।
- একটি নতুন প্রজেক্ট তৈরি করুন। নাম দিন, যেমন:
JSONArrayExample.
স্টেপ ২: Volley Library যোগ করুন
build.gradle (Module)ফাইল ওপেন করুন।- নিচের লাইনটি
dependenciesসেকশনে যোগ করুন:1
implementation 'com.android.volley:volley:1.2.1'
- Sync Now ক্লিক করুন।
স্টেপ ৩: লেআউট ফাইল তৈরি করুন
res/layout/activity_main.xmlফাইল ওপেন করুন।- নিচের কোডটি যোগ করুন:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<Button
android:id="@+id/btnFetchData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fetch Data" />
<TextView
android:id="@+id/tvResult"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Result will be shown here"
android:textSize="18sp" />
</LinearLayout>
এখানে একটি বাটন এবং একটি টেক্সটভিউ আছে। বাটনে ক্লিক করলে ডেটা ফেচ করা হবে এবং টেক্সটভিউতে ডেটা দেখানো হবে।
স্টেপ ৪: MainActivity.java কোড লিখুন
MainActivity.javaফাইল ওপেন করুন।- নিচের কোডটি লিখুন:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package com.example.jsonarrayexample;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
private Button btnFetchData;
private TextView tvResult;
private RequestQueue requestQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize views
btnFetchData = findViewById(R.id.btnFetchData);
tvResult = findViewById(R.id.tvResult);
// Initialize Volley RequestQueue
requestQueue = Volley.newRequestQueue(this);
// Set click listener for the button
btnFetchData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fetchDataFromServer();
}
});
}
private void fetchDataFromServer() {
String url = "https://jsonplaceholder.typicode.com/users"; // Sample API URL
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(
Request.Method.GET,
url,
null,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
StringBuilder result = new StringBuilder();
// Loop through the JSONArray
for (int i = 0; i < response.length(); i++) {
JSONObject jsonObject = response.getJSONObject(i);
// Extract data from each JSONObject
int id = jsonObject.getInt("id");
String name = jsonObject.getString("name");
String email = jsonObject.getString("email");
// Append data to the result
result.append("ID: ").append(id)
.append("\nName: ").append(name)
.append("\nEmail: ").append(email)
.append("\n\n");
}
// Set the result to TextView
tvResult.setText(result.toString());
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, "Error parsing JSON", Toast.LENGTH_SHORT).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, "Error fetching data", Toast.LENGTH_SHORT).show();
}
}
);
// Add the request to the RequestQueue
requestQueue.add(jsonArrayRequest);
}
}
স্টেপ ৫: কোডের ব্যাখ্যা
- Volley RequestQueue: এটি একটি কিউ যা আমাদের HTTP রিকোয়েস্ট প্রসেস করে।
- JsonArrayRequest: এটি একটি JSONArray রিকোয়েস্ট করার জন্য ব্যবহৃত হয়।
- Looping Through JSONArray: আমরা
forলুপ ব্যবহার করে JSONArray-এর প্রতিটি উপাদানকে পার্স করেছি। - Setting Data to TextView: পার্স করা ডেটা আমরা
StringBuilderব্যবহার করে একটি স্ট্রিং-এ রূপান্তর করেছি এবং সেটিTextView-এ সেট করেছি।
স্টেপ ৬: অ্যাপ রান করুন
- একটি এমুলেটর বা ফিজিক্যাল ডিভাইসে অ্যাপটি রান করুন।
- Fetch Data বাটনে ক্লিক করুন।
- ডেটা লোড হওয়ার পর টেক্সটভিউতে ডেটা দেখানো হবে।
এই পোস্টে আমরা দেখেছি কিভাবে Android Studio-তে Volley Library ব্যবহার করে JSONArray রিকোয়েস্ট করা যায় এবং সেই ডেটা পার্স করে টেক্সটভিউতে দেখানো যায়। এটি একটি খুবই গুরুত্বপূর্ণ টপিক যা আপনার অ্যাপে ডেটা লোড করতে সাহায্য করবে।
