Practical উদাহরণ: JSON Response Handling

JSON Data Extraction এবং Manipulation - জেসুপ (JSoup) - Java Technologies

354

JSoup সাধারণত HTML parsing এবং web scraping এর জন্য ব্যবহৃত হলেও, এটি JSON ডাটা হ্যান্ডেল করতে ব্যবহৃত হয় না। তবে, আপনি যদি একটি ওয়েব API থেকে JSON রেসপন্স গ্রহণ করতে চান, JSoup তার মূল উদ্দেশ্য নয়। JSON ডাটা হ্যান্ডেল করতে Java এ সাধারণত HttpURLConnection, HttpClient বা JSON লাইব্রেরি যেমন Jackson বা Gson ব্যবহৃত হয়। তবে, JSoup এর মাধ্যমে HTML পেজের ডাটা এক্সট্র্যাক্ট করার পর যদি JSON রেসপন্স পাওয়া যায়, সেটি JSON লাইব্রেরি ব্যবহার করে হ্যান্ডেল করা যায়।

এখানে আমরা দেখব কীভাবে JSoup ব্যবহার করে API থেকে JSON ডাটা নেওয়া এবং সঠিকভাবে হ্যান্ডেল করা যায়। উদাহরণস্বরূপ, আমরা একটি API থেকে JSON রেসপন্স প্রাপ্ত করব এবং সেগুলোর উপর কাজ করব।


JSON Response Handling: উদাহরণ

১. HTTP GET Request দিয়ে JSON ডাটা ফেচ করা

আমরা একটি HTTP GET রিকোয়েস্ট পাঠাবো এবং তার মাধ্যমে JSON রেসপন্স পাবো। এর জন্য JSoup দিয়ে প্রথমে HTTP রিকোয়েস্ট পাঠানো হবে এবং তারপর JSON ডাটা নির্দিষ্ট লাইব্রেরি ব্যবহার করে পার্স করা হবে।

উদাহরণ: JSON Response ফেচিং

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.json.JSONObject;
import org.json.JSONArray;

public class JsoupJsonResponse {
    public static void main(String[] args) throws Exception {
        // API URL থেকে JSON ডাটা ফেচ করা
        String url = "https://jsonplaceholder.typicode.com/posts/1";
        
        // JSoup দিয়ে HTTP GET Request পাঠানো এবং JSON রেসপন্স ফেচ করা
        Document doc = Jsoup.connect(url).ignoreContentType(true).get();
        
        // JSON রেসপন্স পেতে পুরো ডকুমেন্টের টেক্সট
        String jsonResponse = doc.text();
        
        // JSON রেসপন্স পার্স করা
        JSONObject jsonObject = new JSONObject(jsonResponse);
        
        // JSON অবজেক্ট থেকে ডাটা এক্সট্র্যাক্ট করা
        int id = jsonObject.getInt("id");
        String title = jsonObject.getString("title");
        String body = jsonObject.getString("body");

        // JSON ডাটা প্রদর্শন করা
        System.out.println("ID: " + id);
        System.out.println("Title: " + title);
        System.out.println("Body: " + body);
    }
}

এখানে, আমরা Jsoup.connect(url).ignoreContentType(true).get(); ব্যবহার করে API থেকে JSON ডাটা ফেচ করছি। ignoreContentType(true) দিয়ে JSoup জানিয়ে দেওয়া হচ্ছে যে এটি JSON ডাটা ফেচ করছে, যাতে JSoup HTML পেজের পরিবর্তে JSON ডাটা গ্রহণ করতে পারে।

jsonResponse এর মাধ্যমে সম্পূর্ণ JSON রেসপন্সটি স্ট্রিং আকারে নেওয়া হচ্ছে। তারপর, JSONObject ব্যবহার করে JSON ডাটা পার্স করা হচ্ছে এবং getInt(), getString() মেথড দিয়ে নির্দিষ্ট ফিল্ডের মান নেওয়া হচ্ছে।

আউটপুট:

ID: 1
Title: sunt aut facere repellat provident occaecati excepturi optio reprehenderit
Body: quia et suscipit\nsuscipit...

২. JSON Array থেকে ডাটা এক্সট্র্যাক্ট করা

অনেক সময় JSON রেসপন্স একটি অ্যারে আকারে ফিরে আসে। এই ধরনের JSON Array থেকে ডাটা এক্সট্র্যাক্ট করা তেমন কঠিন নয়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে আমরা JSON Array থেকে ডাটা এক্সট্র্যাক্ট করছি।

উদাহরণ: JSON Array থেকে ডাটা এক্সট্র্যাক্ট করা

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.json.JSONArray;
import org.json.JSONObject;

public class JsoupJsonArrayResponse {
    public static void main(String[] args) throws Exception {
        // API URL থেকে JSON অ্যারে ফেচ করা
        String url = "https://jsonplaceholder.typicode.com/posts";
        
        // JSoup দিয়ে HTTP GET Request পাঠানো এবং JSON রেসপন্স ফেচ করা
        Document doc = Jsoup.connect(url).ignoreContentType(true).get();
        
        // JSON রেসপন্স পেতে পুরো ডকুমেন্টের টেক্সট
        String jsonResponse = doc.text();
        
        // JSON অ্যারে পার্স করা
        JSONArray jsonArray = new JSONArray(jsonResponse);
        
        // JSON অ্যারে থেকে প্রতিটি অবজেক্টের ডাটা এক্সট্র্যাক্ট করা
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            int id = jsonObject.getInt("id");
            String title = jsonObject.getString("title");
            
            // প্রতিটি পোস্টের ID এবং Title প্রদর্শন করা
            System.out.println("ID: " + id);
            System.out.println("Title: " + title);
        }
    }
}

এখানে, আমরা একটি JSON অ্যারে ফেচ করছি এবং এর মধ্যে থাকা প্রতিটি অবজেক্ট থেকে ডাটা এক্সট্র্যাক্ট করছি। JSONArray এর মাধ্যমে JSON অ্যারের উপর লুপ করে প্রতিটি অবজেক্টের ভেতরের ডাটা তুলে নেওয়া হয়েছে।

আউটপুট:

ID: 1
Title: sunt aut facere repellat provident occaecati excepturi optio reprehenderit
ID: 2
Title: qui est esse
ID: 3
Title: ea molestias quasi exercitationem repellat qui ipsa sit aut
...

সারাংশ

JSoup সাধারণত HTML ডকুমেন্ট পার্সিং এবং স্ক্র্যাপিংয়ের জন্য ব্যবহৃত হলেও, এটি JSON ডাটা হ্যান্ডেল করার জন্য সরাসরি ব্যবহৃত হয় না। তবে, JSoup এর মাধ্যমে API থেকে JSON রেসপন্স নিয়ে ignoreContentType(true) সেট করে JSON ডাটা গ্রহণ করা সম্ভব। এরপর, JSON লাইব্রেরি (যেমন JSONObject, JSONArray) ব্যবহার করে JSON ডাটা পার্স এবং ম্যানিপুলেট করা হয়। JSoup এবং JSON লাইব্রেরি ব্যবহার করে API থেকে ডাটা এক্সট্র্যাক্ট করা এবং পরবর্তী প্রক্রিয়াগুলি করা সহজ এবং কার্যকর।

Content added By
Promotion

Are you sure to start over?

Loading...