Json.Simple লাইব্রেরি ব্যবহার করে আপনি JSON ডেটা পার্স এবং ম্যানিপুলেট করতে পারেন, তবে এটি কোনও বিল্ট-ইন JSON querying বা searching ফিচার সরবরাহ করে না। তবে, আপনি JSON অবজেক্ট বা অ্যারে থেকে নির্দিষ্ট মান বের করার জন্য কিছু সাধারণ পদ্ধতি ব্যবহার করতে পারেন। এখানে আমরা JSON ডেটাতে querying এবং searching করার জন্য কিছু টেকনিক এবং উদাহরণ দেখব।
JSON Querying: JSON ডেটার মধ্যে নির্দিষ্ট কী বা মান অনুসন্ধান করা।
JSON Searching: JSON অবজেক্ট বা অ্যারে থেকে নির্দিষ্ট মান বা কীগুলোর মধ্যে অনুসন্ধান করা।
1. JSON Querying in Json.Simple
JSON ডেটা থেকে কী বা মান খুঁজে বের করার জন্য JSONObject এর get() মেথড এবং JSONArray এর get() মেথড ব্যবহার করা হয়। এটি নির্দিষ্ট কী বা মান অনুসন্ধান করতে সাহায্য করে।
Example: JSON Querying with JSONObject
ধরা যাক, আপনি একটি Person JSON অবজেক্ট থেকে age কী-এর মান বের করতে চান।
import org.json.simple.JSONObject;
public class JsonQueryExample {
public static void main(String[] args) {
// JSONObject তৈরি করা
JSONObject person = new JSONObject();
person.put("name", "John");
person.put("age", 30);
person.put("isStudent", false);
// JSON Object থেকে মান বের করা
String name = (String) person.get("name");
int age = ((Long) person.get("age")).intValue(); // Age is stored as Long, so we need to convert it
boolean isStudent = (Boolean) person.get("isStudent");
// মান প্রিন্ট করা
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Is Student: " + isStudent);
}
}
Output:
Name: John
Age: 30
Is Student: false
এখানে, person.get("age") ব্যবহার করে age কী-এর মান বের করা হয়েছে। এর মানটি Long হিসেবে ফেরত আসে, তাই intValue() ব্যবহার করা হয়েছে।
2. Searching in JSON Arrays
যখন JSON ডেটা অ্যারে আকারে থাকে, আপনি JSONArray ব্যবহার করে অ্যারের মধ্যে বিভিন্ন অবজেক্ট বা মান অনুসন্ধান করতে পারেন। এখানে একটি JSONArray তে বিভিন্ন JSONObject থাকতে পারে এবং আপনি একটি নির্দিষ্ট কী বা মান অনুসন্ধান করতে পারেন।
Example: Searching in a JSON Array
ধরা যাক, আপনি একটি JSONArray থেকে "age" 30 এর সাথে মিলে এমন Person অবজেক্ট খুঁজে বের করতে চান।
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class JsonSearchArrayExample {
public static void main(String[] args) {
// JSONArray তৈরি করা
JSONArray peopleArray = new JSONArray();
// Person 1 JSONObject তৈরি করা
JSONObject person1 = new JSONObject();
person1.put("name", "John");
person1.put("age", 30);
peopleArray.add(person1);
// Person 2 JSONObject তৈরি করা
JSONObject person2 = new JSONObject();
person2.put("name", "Jane");
person2.put("age", 25);
peopleArray.add(person2);
// Searching for the person with age 30
for (Object obj : peopleArray) {
JSONObject person = (JSONObject) obj;
Long age = (Long) person.get("age");
if (age == 30) {
System.out.println("Found person with age 30: " + person.get("name"));
}
}
}
}
Output:
Found person with age 30: John
এখানে, JSONArray তে দুটি person অবজেক্ট রাখা হয়েছে। আমরা age কী এর মাধ্যমে প্রতিটি person অবজেক্টের মধ্যে খুঁজে বের করেছি এবং যদি age 30 হয়, তবে সেই ব্যক্তির নাম প্রিন্ট করেছি।
3. Nested JSON Querying and Searching
এখন ধরুন, আপনার কাছে একটি nested JSON অবজেক্ট রয়েছে, যেখানে এক অবজেক্টের মধ্যে আরেক অবজেক্ট রয়েছে। আপনি কীভাবে nested অবজেক্ট থেকে মান বের করবেন বা খুঁজে বের করবেন?
Example: Nested JSON Querying
import org.json.simple.JSONObject;
public class NestedJsonQueryExample {
public static void main(String[] args) {
// Inner JSON Object তৈরি করা
JSONObject address = new JSONObject();
address.put("street", "123 Main St");
address.put("city", "New York");
// Outer JSON Object তৈরি করা
JSONObject person = new JSONObject();
person.put("name", "John");
person.put("age", 30);
person.put("address", address); // Nested Object
// Nested JSON Object থেকে মান বের করা
JSONObject personAddress = (JSONObject) person.get("address");
String street = (String) personAddress.get("street");
String city = (String) personAddress.get("city");
// প্রিন্ট করা
System.out.println("Street: " + street);
System.out.println("City: " + city);
}
}
Output:
Street: 123 Main St
City: New York
এখানে, person অবজেক্টের মধ্যে address একটি nested JSON অবজেক্ট রয়েছে। আমরা person.get("address") ব্যবহার করে address অবজেক্টটি বের করেছি এবং তার মধ্যে street এবং city এর মান বের করেছি।
4. Filtering JSON Objects
এছাড়া, যদি আপনি JSON অবজেক্ট বা অ্যারের মধ্যে কিছু নির্দিষ্ট মান অনুসন্ধান করতে চান, তবে এটি Java Streams ব্যবহার করে ফিল্টার করতে পারেন।
Example: Filtering JSON Objects Using Streams
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import java.util.stream.Collectors;
public class JsonFilteringExample {
public static void main(String[] args) {
// JSONArray তৈরি করা
JSONArray peopleArray = new JSONArray();
// Person 1 JSONObject তৈরি করা
JSONObject person1 = new JSONObject();
person1.put("name", "John");
person1.put("age", 30);
peopleArray.add(person1);
// Person 2 JSONObject তৈরি করা
JSONObject person2 = new JSONObject();
person2.put("name", "Jane");
person2.put("age", 25);
peopleArray.add(person2);
// Filtering people with age > 25
JSONArray filteredPeople = (JSONArray) peopleArray.stream()
.filter(person -> (Long) ((JSONObject) person).get("age") > 25)
.collect(Collectors.toList());
// Print filtered people
for (Object person : filteredPeople) {
JSONObject jsonObject = (JSONObject) person;
System.out.println(jsonObject.get("name") + " is older than 25");
}
}
}
Output:
John is older than 25
এখানে, Java Streams ব্যবহার করে আমরা age > 25 এমন সমস্ত person অবজেক্ট ফিল্টার করেছি এবং তাদের নাম প্রিন্ট করেছি।
- JSON.simple লাইব্রেরি সরাসরি JSON ডেটার উপর querying বা searching ফিচার সরবরাহ না করলেও, আপনি
get()মেথডের মাধ্যমে সহজেই JSON অবজেক্ট এবং অ্যারে থেকে মান অনুসন্ধান করতে পারেন। - JSONArray তে একাধিক JSONObject থাকতে পারে এবং আপনি সহজেই লুপ বা Java Streams ব্যবহার করে ফিল্টারিং করতে পারেন।
- Nested JSON থেকে মান বের করার জন্য আপনি nested
get()মেথড ব্যবহার করতে পারেন, যা আপনাকে JSON অবজেক্টের মধ্যে থাকা ডেটার স্তরের মধ্যে খোঁজার সুযোগ দেয়। - JSON ডেটা থেকে ফলস্বরূপ ডেটা বের করতে Java Streams একটি শক্তিশালী টুল হতে পারে।
এই পদ্ধতিগুলি JSON ডেটার querying এবং searching প্রক্রিয়াকে সহজ এবং কার্যকরী করে তোলে।
Read more