JSoup একটি শক্তিশালী টুল HTML ডকুমেন্ট ম্যানিপুলেশন এবং ডেটা এক্সট্র্যাক্ট করার জন্য, তবে JSON ডেটা এক্সট্র্যাক্ট এবং ম্যানিপুলেশন করার জন্য JSoup ব্যবহৃত হয় না। JSON (JavaScript Object Notation) একটি সাধারণ ডেটা বিনিময় ফরম্যাট যা স্ট্রাকচারড ডেটা পরিবহন করতে ব্যবহৃত হয়। JSON ডেটা এক্সট্র্যাক্ট এবং ম্যানিপুলেট করতে Jackson, Gson, বা org.json এর মতো লাইব্রেরি ব্যবহৃত হয়। এই লাইব্রেরিগুলি JSON ডেটা প্রক্রিয়া করতে খুব কার্যকর।
এখানে, JSoup এর মাধ্যমে ডাইনামিক ডেটা এক্সট্র্যাক্ট করার প্রক্রিয়া এবং JSON ডেটার মাধ্যমে এক্সট্র্যাক্ট এবং ম্যানিপুলেশন করার জন্য প্রয়োজনীয় টিপস দেওয়া হবে।
JSON ডেটা এক্সট্র্যাক্ট এবং ম্যানিপুলেশন
JSON ডেটা এক্সট্র্যাক্ট করা
যদি আপনি একটি API বা ওয়েবসাইট থেকে JSON ডেটা এক্সট্র্যাক্ট করতে চান, তবে আপনাকে প্রথমে সেই JSON ডেটাটি পার্স করতে হবে। JSON ডেটার একটি সাধারণ কাঠামো থাকে, এবং Java-তে JSON ডেটা পার্স করতে বিভিন্ন লাইব্রেরি রয়েছে। এখানে একটি উদাহরণ দেওয়া হলো যেখানে Jackson লাইব্রেরি ব্যবহার করা হয়েছে JSON ডেটা এক্সট্র্যাক্ট এবং ম্যানিপুলেট করার জন্য।
Jackson ব্যবহার করে JSON এক্সট্র্যাক্ট করা:
Jackson ডিপেন্ডেন্সি (Maven):
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version> <!-- সর্বশেষ সংস্করণ -->
</dependency>
উদাহরণ:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class JsonExample {
public static void main(String[] args) throws IOException {
// JSON ডেটা স্ট্রিং
String jsonData = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }";
// ObjectMapper ব্যবহার করে JSON পার্স করা
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonData);
// JSON ডেটা এক্সট্র্যাক্ট করা
String name = rootNode.path("name").asText();
int age = rootNode.path("age").asInt();
String city = rootNode.path("city").asText();
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("City: " + city);
}
}
এখানে, Jackson লাইব্রেরি ব্যবহার করে JSON ডেটা পার্স করা হয়েছে এবং ডেটার বিভিন্ন অংশ যেমন name, age, এবং city এক্সট্র্যাক্ট করা হয়েছে।
JSON ডেটা ম্যানিপুলেশন
JSON ডেটাতে পরিবর্তন করার জন্য আমরা Jackson বা Gson লাইব্রেরি ব্যবহার করতে পারি। নিচে Jackson ব্যবহার করে JSON ডেটাতে পরিবর্তন (Manipulation) করার একটি উদাহরণ দেওয়া হলো।
Jackson এর মাধ্যমে JSON ম্যানিপুলেশন:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class JsonManipulationExample {
public static void main(String[] args) throws IOException {
// JSON ডেটা স্ট্রিং
String jsonData = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }";
// ObjectMapper ব্যবহার করে JSON পার্স করা
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonData);
// JSON ডেটা ম্যানিপুলেশন
((ObjectNode) rootNode).put("name", "Jane"); // name পরিবর্তন
((ObjectNode) rootNode).put("age", 25); // age পরিবর্তন
// নতুন JSON ডেটা প্রিন্ট করা
System.out.println(rootNode.toString()); // {"name":"Jane","age":25,"city":"New York"}
}
}
এখানে, ObjectNode ব্যবহার করে JSON ডেটার name এবং age ফিল্ডের মান পরিবর্তন করা হয়েছে। Jackson লাইব্রেরি JSON ডেটার কাঠামো এবং মান পরিবর্তন করতে সাহায্য করে।
JSoup দিয়ে JSON ডেটা এক্সট্র্যাক্ট করা
যেহেতু JSoup HTML ডকুমেন্ট ম্যানিপুলেশন এবং এক্সট্র্যাকশনের জন্য ব্যবহৃত হয়, JSON ডেটার সাথে সরাসরি কাজ করার জন্য JSoup ব্যবহার করা সম্ভব নয়। তবে, যদি JSON ডেটা HTML পেজে এম্বেডেড থাকে (যেমন <script> ট্যাগে JSON ডেটা রাখা হয়), তখন আপনি JSoup ব্যবহার করে JSON ডেটাকে HTML ডকুমেন্ট থেকে এক্সট্র্যাক্ট করতে পারেন।
উদাহরণ:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupJsonExample {
public static void main(String[] args) throws Exception {
// HTML ডকুমেন্ট যেখানে JSON ডেটা রয়েছে
String html = "<html><head><title>Example</title></head><body><script type='application/json'>"
+ "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"
+ "</script></body></html>";
// HTML পার্সিং
Document doc = Jsoup.parse(html);
// <script> ট্যাগ থেকে JSON ডেটা এক্সট্র্যাক্ট করা
Element script = doc.select("script[type=application/json]").first();
String jsonData = script.html();
System.out.println("Extracted JSON: " + jsonData);
}
}
এখানে, JSoup ব্যবহার করে HTML ডকুমেন্টের মধ্যে থাকা JSON ডেটা <script> ট্যাগ থেকে এক্সট্র্যাক্ট করা হয়েছে।
সারাংশ
JSoup মূলত HTML ডকুমেন্ট ম্যানিপুলেশনের জন্য ব্যবহৃত হয়, তবে JSON ডেটার জন্য Jackson বা Gson এর মতো লাইব্রেরি ব্যবহৃত হয়। JSON ডেটা এক্সট্র্যাক্ট এবং ম্যানিপুলেট করতে Jackson এবং Gson দুটি শক্তিশালী টুল। যদি JSON ডেটা HTML পেজে এম্বেডেড থাকে, তবে JSoup এর মাধ্যমে JSON ডেটা এক্সট্র্যাক্ট করা সম্ভব। JSON ডেটার স্ট্রাকচার এবং কার্যকরী ব্যবহারের জন্য Jackson লাইব্রেরি অধিক জনপ্রিয়।
Read more