परिचय
यह लेख दिखाता है कि Volley से प्राप्त JSON डेटा को कस्टम ऑब्जेक्ट्स की सूची में कैसे पार्स करें और फिर उस सूची को किसी फ़ील्ड (जैसे नाम) के आधार पर सॉर्ट करें।
कार्यान्वयन चरण
चरण 1: build.gradle में निर्भरताएं
implementation 'com.android.volley:volley:1.1.0'
चरण 2: लेआउट (activity_main.xml)
<TextView android:id="@+id/text" ... />
चरण 3: MainActivity.java
public class MainActivity extends AppCompatActivity {
TextView textView;
RequestQueue queue;
String URL = "https://www.mocky.io/v2/597c41390f0000d002f4dbd1";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.text);
queue = Volley.newRequestQueue(this);
List list = new ArrayList<>();
StringRequest request = new StringRequest(Request.Method.GET, URL,
response -> {
try {
JSONObject object = new JSONObject(response);
JSONArray array = object.getJSONArray("users");
for (int i = 0; i < array.length(); i++) {
JSONObject obj = array.getJSONObject(i);
list.add(new UserInfo(obj.getString("name"), obj.getString("email")));
}
// नाम के अनुसार सॉर्ट करें
Collections.sort(list, (o1, o2) -> o1.name.compareTo(o2.name));
textView.setText("email: " + list.get(0).email + "\nname: " + list.get(0).name);
} catch (JSONException e) {
e.printStackTrace();
}
},
error -> Log.d("error", error.toString())
);
queue.add(request);
}
private class UserInfo {
String name, email;
UserInfo(String name, String email) { this.name = name; this.email = email; }
}
} चरण 4: AndroidManifest.xml में इंटरनेट अनुमति
<uses-permission android:name="android.permission.INTERNET" />
व्याख्या
- JSON प्रतिक्रिया से `users` सरणी निकाली जाती है।
- प्रत्येक ऑब्जेक्ट से `name` और `email` लेकर `UserInfo` ऑब्जेक्ट बनाए जाते हैं।
- `Collections.sort` और एक कस्टम `Comparator` का उपयोग करके सूची को नाम के अनुसार सॉर्ट किया जाता है।
- सबसे पहला (सॉर्ट के बाद) आइटम TextView में प्रदर्शित होता है।