জেসুপ (JSoup) সাধারণত HTML পার্সিং এবং ওয়েব স্ক্র্যাপিংয়ের জন্য ব্যবহৃত হয়, তবে এটি JSON ডেটা ফেচ এবং পার্সিংয়ের জন্য সরাসরি ডিজাইন করা হয়নি। তবে, JSON ডেটা হ্যান্ডল করার জন্য আপনি Java এর অন্যান্য লাইব্রেরি ব্যবহার করতে পারেন যেমন Jackson বা Gson। আপনি যদি কোনো ওয়েবসাইট থেকে JSON ডেটা এক্সট্র্যাক্ট করতে চান, তবে সাধারণত HTTP রিকোয়েস্ট পাঠাতে হবে এবং তারপর সেই JSON ডেটাকে পার্স করতে হবে।
এখানে দেখানো হবে কিভাবে HTTP রিকোয়েস্ট পাঠিয়ে JSON ডেটা ফেচ করা এবং JSON ডেটা পার্স করা যায়।
JSON ডেটা Fetch এবং Parse করার জন্য লাইব্রেরি
১. Jsoup দিয়ে JSON ডেটা Fetch করা
যেহেতু Jsoup HTML ডকুমেন্ট পার্স করতে সক্ষম, এটি JSON ডেটা ফেচ করার জন্যও HTTP রিকোয়েস্ট পাঠানোর কাজ করতে পারে। তবে JSON ডেটা হ্যান্ডল করার জন্য Jackson বা Gson লাইব্রেরি বেশি উপযুক্ত, কারণ এই লাইব্রেরিগুলি JSON ডেটা পার্স এবং সিরিয়ালাইজ করার জন্য তৈরি।
২. Jackson বা Gson দিয়ে JSON Parse করা
এখানে আমরা Jackson লাইব্রেরি ব্যবহার করে JSON ডেটা ফেচ এবং পার্স করার উদাহরণ দেখব।
Jackson লাইব্রেরি দিয়ে JSON ডেটা Fetch এবং Parse করা
Jackson একটি জনপ্রিয় লাইব্রেরি যা JSON ডেটা পার্স এবং সিরিয়ালাইজ করার জন্য ব্যবহৃত হয়। Jsoup দিয়ে HTTP রিকোয়েস্ট পাঠিয়ে JSON ডেটা ফেচ করা হবে এবং Jackson দিয়ে সেই JSON ডেটা পার্স করা হবে।
উদাহরণ: Jsoup দিয়ে JSON ডেটা Fetch এবং Jackson দিয়ে Parse করা
প্রথমে, Jackson লাইব্রেরি আপনার প্রজেক্টে যোগ করতে হবে। যদি আপনি Maven ব্যবহার করেন, তাহলে pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করুন:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
এখন, নিচে একটি উদাহরণ দেওয়া হল যেখানে Jsoup দিয়ে JSON ডেটা ফেচ করা হয়েছে এবং Jackson দিয়ে পার্স করা হয়েছে:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;
public class JsoupJsonFetchExample {
public static void main(String[] args) {
try {
// JSON ডেটা ফেচ করা Jsoup দিয়ে
String jsonUrl = "https://api.example.com/data";
Document doc = Jsoup.connect(jsonUrl).ignoreContentType(true).get();
// JSON ডেটা হিসেবে কন্টেন্ট এক্সট্র্যাক্ট করা
String jsonResponse = doc.text();
System.out.println("JSON Response: " + jsonResponse);
// Jackson দিয়ে JSON ডেটা পার্স করা
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonResponse);
// JSON ডেটার অংশ এক্সট্র্যাক্ট করা
String value = rootNode.path("key").asText();
System.out.println("Extracted Value: " + value);
} catch (IOException e) {
e.printStackTrace();
}
}
}
কোডের ব্যাখ্যা:
- Jsoup দিয়ে JSON ডেটা ফেচ করা:
Jsoup.connect(jsonUrl).ignoreContentType(true).get()এই লাইনটি ব্যবহার করে আমরা JSON ডেটা ফেচ করেছি। এখানে.ignoreContentType(true)ব্যবহার করা হয়েছে, কারণ Jsoup সাধারণত HTML কনটেন্ট পার্স করে, কিন্তু JSON ডেটা পার্স করার জন্য এই অপশনটি ব্যবহার করতে হয়। - Jackson দিয়ে JSON ডেটা পার্স করা:
ObjectMapperব্যবহার করে JSON ডেটা পার্স করা হয়েছে এবংJsonNodeএর মাধ্যমে নির্দিষ্ট কনটেন্ট যেমন"key"এর ভ্যালু এক্সট্র্যাক্ট করা হয়েছে।
Gson লাইব্রেরি দিয়ে JSON ডেটা Fetch এবং Parse করা
যদি আপনি Jackson না ব্যবহার করে Gson ব্যবহার করতে চান, তবে এটি একই কাজ করতে পারে। Gson হল আরেকটি জনপ্রিয় লাইব্রেরি যা JSON ডেটা পার্স এবং সিরিয়ালাইজ করতে ব্যবহৃত হয়।
উদাহরণ: Jsoup দিয়ে JSON ডেটা Fetch এবং Gson দিয়ে Parse করা
প্রথমে, Gson লাইব্রেরি আপনার প্রজেক্টে যোগ করতে হবে। Maven ব্যবহার করলে pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করুন:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
এখন, Gson দিয়ে JSON পার্স করার উদাহরণ:
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;
public class JsoupGsonFetchExample {
public static void main(String[] args) {
try {
// JSON ডেটা ফেচ করা Jsoup দিয়ে
String jsonUrl = "https://api.example.com/data";
Document doc = Jsoup.connect(jsonUrl).ignoreContentType(true).get();
// JSON ডেটা হিসেবে কন্টেন্ট এক্সট্র্যাক্ট করা
String jsonResponse = doc.text();
System.out.println("JSON Response: " + jsonResponse);
// Gson দিয়ে JSON ডেটা পার্স করা
JsonObject jsonObject = JsonParser.parseString(jsonResponse).getAsJsonObject();
// JSON ডেটার অংশ এক্সট্র্যাক্ট করা
String value = jsonObject.get("key").getAsString();
System.out.println("Extracted Value: " + value);
} catch (IOException e) {
e.printStackTrace();
}
}
}
কোডের ব্যাখ্যা:
- Jsoup দিয়ে JSON ডেটা ফেচ করা: একইভাবে, Jsoup ব্যবহার করে JSON ডেটা ফেচ করা হয়েছে এবং
.ignoreContentType(true)অপশনটি দিয়ে JSON কনটেন্ট প্যার্স করা হয়েছে। - Gson দিয়ে JSON পার্স করা:
JsonParser.parseString()মেথড দিয়ে JSON ডেটা পার্স করা হয়েছে এবংJsonObjectব্যবহার করে নির্দিষ্ট কনটেন্ট যেমন"key"এর ভ্যালু এক্সট্র্যাক্ট করা হয়েছে।
সারাংশ
জেসুপ (JSoup) মূলত HTML পার্সিং এবং ওয়েব স্ক্র্যাপিংয়ের জন্য ব্যবহৃত হলেও, এটি JSON ডেটা ফেচ করার জন্য HTTP রিকোয়েস্ট পাঠাতে সক্ষম। তবে JSON ডেটা পার্স করার জন্য Jackson বা Gson লাইব্রেরি ব্যবহার করা প্রয়োজন। Jsoup দিয়ে JSON ডেটা ফেচ করার পর, Jackson বা Gson দিয়ে সেই ডেটা পার্স এবং এক্সট্র্যাক্ট করা সম্ভব।
Read more