Complex JSON Object এবং Nested JSON Parsing

Java Technologies - অর্গ.জেসন (Org.Json)
84
84

অর্গ.জেসন (Org.Json) লাইব্রেরি Java-তে JSON ডেটা প্রসেস করার জন্য একটি জনপ্রিয় টুল। এতে আপনি সহজেই JSON অবজেক্ট তৈরি, ম্যানিপুলেট, এবং প্যার্স করতে পারেন। যখন JSON ডেটা জটিল বা নেস্টেড (Nested) হয়, তখন JSON ডেটাকে প্যার্স করা কিছুটা চ্যালেঞ্জিং হতে পারে। তবে, সঠিক পদ্ধতি অনুসরণ করলে, আপনি সহজেই নেস্টেড JSON অবজেক্টগুলি এক্সট্র্যাক্ট এবং প্যার্স করতে পারবেন।

Complex JSON Object

Complex JSON Object হল এমন একটি JSON অবজেক্ট, যা একাধিক নেস্টেড অবজেক্ট এবং অ্যারে ধারণ করে। যেমন, একটি ব্যক্তি সম্পর্কে ডেটা যেখানে তার নাম, ঠিকানা, ফোন নম্বর, এবং অন্যান্য বৈশিষ্ট্য অন্তর্ভুক্ত থাকতে পারে। এই ধরনের JSON ডেটা সাধারণত API থেকে আসে এবং সেগুলি প্যার্স করা প্রয়োজন হয়।

Complex JSON Object উদাহরণ

ধরা যাক, আমাদের কাছে একটি JSON ডেটা রয়েছে, যা একটি ব্যক্তি এবং তার সম্পর্কিত ডেটা ধারণ করে। এখানে ব্যক্তি সম্পর্কে তার নাম, বয়স, ফোন নম্বর এবং ঠিকানা রয়েছে, যেটি একটি নেস্টেড অবজেক্ট।

উদাহরণ: Complex JSON Object

{
  "name": "John Doe",
  "age": 30,
  "phoneNumbers": [
    "123-456-7890",
    "987-654-3210"
  ],
  "address": {
    "street": "123 Main St",
    "city": "New York",
    "zipcode": "10001"
  }
}

এই JSON ডেটাকে প্যার্স করার জন্য, JSONObject এবং JSONArray ক্লাস ব্যবহার করা হবে।

Nested JSON Parsing

নেস্টেড JSON Parsing হল একটি প্রক্রিয়া যেখানে JSON অবজেক্টের মধ্যে অবস্থিত অন্য অবজেক্ট বা অ্যারে থেকে ডেটা এক্সট্র্যাক্ট করা হয়। এটি JSON ডেটাকে হায়ারার্কিকাল স্ট্রাকচারে উপস্থাপন করে এবং প্রতিটি স্তরের ডেটা প্যার্স করার জন্য সঠিক কিওয়ার্ড ব্যবহার করতে হয়।

উদাহরণ: Complex JSON Object এবং Nested JSON Parsing

import org.json.JSONArray;
import org.json.JSONObject;

public class NestedJsonParsing {
    public static void main(String[] args) {
        // JSON স্ট্রিং
        String jsonString = "{"
                + "\"name\": \"John Doe\","
                + "\"age\": 30,"
                + "\"phoneNumbers\": [\"123-456-7890\", \"987-654-3210\"],"
                + "\"address\": {"
                + "\"street\": \"123 Main St\","
                + "\"city\": \"New York\","
                + "\"zipcode\": \"10001\""
                + "}"
                + "}";

        // JSON স্ট্রিং থেকে JSONObject তৈরি
        JSONObject jsonObject = new JSONObject(jsonString);

        // JSON থেকে মান এক্সট্র্যাক্ট করা
        String name = jsonObject.getString("name");
        int age = jsonObject.getInt("age");

        // JSONArray থেকে ফোন নম্বরগুলো এক্সট্র্যাক্ট করা
        JSONArray phoneNumbers = jsonObject.getJSONArray("phoneNumbers");
        String phoneNumber1 = phoneNumbers.getString(0); // প্রথম ফোন নম্বর
        String phoneNumber2 = phoneNumbers.getString(1); // দ্বিতীয় ফোন নম্বর

        // Nested JSON Object (address) থেকে ডেটা এক্সট্র্যাক্ট করা
        JSONObject address = jsonObject.getJSONObject("address");
        String street = address.getString("street");
        String city = address.getString("city");
        String zipcode = address.getString("zipcode");

        // JSON ডেটা প্রদর্শন
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Phone Numbers: " + phoneNumber1 + ", " + phoneNumber2);
        System.out.println("Street: " + street);
        System.out.println("City: " + city);
        System.out.println("Zipcode: " + zipcode);
    }
}

কোড ব্যাখ্যা

  • JSONObject jsonObject = new JSONObject(jsonString);
    JSON স্ট্রিং থেকে JSONObject তৈরি করা হয়েছে।
  • getString() এবং getInt():
    JSONObject থেকে সোজা স্ট্রিং বা ইনটিজার মান এক্সট্র্যাক্ট করতে এই মেথডগুলো ব্যবহার করা হয়।
  • JSONArray phoneNumbers = jsonObject.getJSONArray("phoneNumbers");
    এটি ফোন নম্বরের অ্যারে পেতে ব্যবহার করা হয়। এরপর, অ্যারে থেকে নির্দিষ্ট ইনডেক্স দিয়ে ফোন নম্বর এক্সট্র্যাক্ট করা হয়।
  • JSONObject address = jsonObject.getJSONObject("address");
    এটি নেস্টেড JSON অবজেক্ট address এক্সট্র্যাক্ট করার জন্য ব্যবহার করা হয়। তারপর, getString() মেথড দিয়ে street, city, এবং zipcode এক্সট্র্যাক্ট করা হয়।

JSON অবজেক্টের সঠিক পদ্ধতিতে প্যার্সিং

নেস্টেড JSON অবজেক্ট বা অ্যারে প্যার্স করার সময়, কিছু গুরুত্বপূর্ণ পদ্ধতি রয়েছে:

  • নেস্টেড অবজেক্ট: যখন JSON ডেটা একটি অবজেক্ট ধারণ করে (যেমন address), তখন getJSONObject() মেথড ব্যবহার করে ঐ অবজেক্টটি এক্সট্র্যাক্ট করতে হয়।
  • অ্যারে প্যার্সিং: যখন JSON ডেটা একটি অ্যারে ধারণ করে (যেমন phoneNumbers), তখন getJSONArray() মেথড ব্যবহার করে অ্যারে এক্সট্র্যাক্ট করতে হয় এবং এরপর অ্যারের ইনডেক্স দিয়ে মানগুলো এক্সট্র্যাক্ট করতে হয়।

সারাংশ

অর্গ.জেসন (Org.Json) লাইব্রেরি Java-তে JSON ডেটা প্যার্স এবং ম্যানিপুলেশনের জন্য একটি কার্যকরী টুল। Complex JSON Objects এবং Nested JSON Parsing প্রয়োগ করার মাধ্যমে আমরা JSON ডেটার বিভিন্ন স্তরের ডেটা সহজেই এক্সট্র্যাক্ট করতে পারি। JSON ডেটা যদি অনেক লেয়ার এবং অ্যারে ধারণ করে, তবে সঠিক পদ্ধতিতে প্যার্সিং ব্যবহার করলে ডেটার সঠিক মান পাওয়া যায় এবং সহজেই এটি ম্যানিপুলেট করা যায়।

Content added By

Complex JSON Object তৈরি করা

63
63

org.json লাইব্রেরির সাহায্যে আপনি সহজেই JSON অবজেক্ট তৈরি করতে পারেন এবং সেটিতে বিভিন্ন স্তরের (nested) ডাটা রাখতে পারেন। JSON অবজেক্ট তৈরি করার সময়, আপনি স্ট্রিং, নাম্বার, অ্যারে এবং অন্য JSON অবজেক্টও অন্তর্ভুক্ত করতে পারেন, যা একটি জটিল বা complex JSON object তৈরি করতে সহায়ক।

এখানে আমরা দেখব কিভাবে একটি জটিল JSON অবজেক্ট তৈরি করা যায়, যার মধ্যে একাধিক স্তরের অবজেক্ট এবং অ্যারে থাকে।

Complex JSON Object তৈরি করার জন্য মূল উপাদান

  1. JSONObject: JSON অবজেক্ট তৈরি এবং ম্যানিপুলেট করার জন্য।
  2. JSONArray: JSON অ্যারে তৈরি এবং ম্যানিপুলেট করার জন্য।
  3. Nested Objects: JSON অবজেক্টের মধ্যে অন্য JSON অবজেক্ট অন্তর্ভুক্ত করা।
  4. Mixed Data Types: স্ট্রিং, নাম্বার, অ্যারে, এবং অবজেক্টগুলিকে একসাথে রাখা।

উদাহরণ: Complex JSON Object তৈরি

import org.json.JSONArray;
import org.json.JSONObject;

public class ComplexJSONObjectExample {
    public static void main(String[] args) {
        // Outer JSON অবজেক্ট তৈরি
        JSONObject outerObject = new JSONObject();

        // ব্যক্তির নাম এবং বয়স
        outerObject.put("name", "John Doe");
        outerObject.put("age", 30);

        // ঠিকানা অবজেক্ট তৈরি (Nested JSON Object)
        JSONObject address = new JSONObject();
        address.put("street", "123 Main St");
        address.put("city", "Anytown");
        address.put("zipcode", "12345");

        // ঠিকানা অবজেক্ট যোগ করা outerObject তে
        outerObject.put("address", address);

        // ফোন নম্বরের অ্যারে তৈরি
        JSONArray phoneNumbers = new JSONArray();
        phoneNumbers.put("123-4567");
        phoneNumbers.put("987-6543");

        // ফোন নম্বর অ্যারে যোগ করা outerObject তে
        outerObject.put("phoneNumbers", phoneNumbers);

        // শখের অ্যারে তৈরি
        JSONArray hobbies = new JSONArray();
        hobbies.put("Reading");
        hobbies.put("Swimming");
        hobbies.put("Cycling");

        // শখ অ্যারে যোগ করা outerObject তে
        outerObject.put("hobbies", hobbies);

        // Inner JSON অবজেক্ট তৈরি: কর্মজীবন সম্পর্কিত তথ্য
        JSONObject career = new JSONObject();
        career.put("jobTitle", "Software Engineer");
        career.put("company", "TechCorp");
        career.put("yearsOfExperience", 8);

        // কর্মজীবন অবজেক্ট যোগ করা outerObject তে
        outerObject.put("career", career);

        // JSON অবজেক্ট প্রিন্ট করা
        System.out.println(outerObject.toString(4));  // Indentation for better readability
    }
}

কোড ব্যাখ্যা

  1. Outer JSON অবজেক্ট: প্রথমে outerObject নামে একটি JSON অবজেক্ট তৈরি করা হয়েছে, যেখানে ব্যক্তির তথ্য যেমন নাম, বয়স, ঠিকানা, ফোন নম্বর, শখ এবং কর্মজীবন সম্পর্কিত তথ্য রাখা হবে।
  2. Nested Objects: address এবং career নামক JSON অবজেক্ট দুটি তৈরি করা হয়েছে এবং এগুলি outerObject এর মধ্যে অন্তর্ভুক্ত করা হয়েছে।
  3. JSONArray: ফোন নম্বর এবং শখের তথ্য দুটি অ্যারে (JSONArray) হিসাবে তৈরি করা হয়েছে এবং সেগুলিও outerObject তে রাখা হয়েছে।
  4. toString(4): JSON অবজেক্টটি প্রিন্ট করার সময় toString(4) মেথড ব্যবহার করা হয়েছে যাতে এটি ৪ স্পেস ইনডেন্টেশনে সুন্দরভাবে দেখায়।

আউটপুট

{
    "name": "John Doe",
    "age": 30,
    "address": {
        "street": "123 Main St",
        "city": "Anytown",
        "zipcode": "12345"
    },
    "phoneNumbers": [
        "123-4567",
        "987-6543"
    ],
    "hobbies": [
        "Reading",
        "Swimming",
        "Cycling"
    ],
    "career": {
        "jobTitle": "Software Engineer",
        "company": "TechCorp",
        "yearsOfExperience": 8
    }
}

JSON অবজেক্টের উপাদান বিশ্লেষণ

  • Personal Information: নাম এবং বয়স একটি সরল key-value পেয়ার হিসেবে outerObject তে রাখা হয়েছে।
  • Nested JSON Object (Address & Career): address এবং career নামক দুটি JSON অবজেক্ট তৈরি করা হয়েছে যা আরো বিস্তারিত তথ্য ধারণ করছে এবং এই অবজেক্টগুলো outerObject এর অংশ।
  • JSONArray (Phone Numbers & Hobbies): ফোন নম্বর এবং শখের তালিকা দুটি JSON অ্যারে হিসাবে তৈরি করা হয়েছে। অ্যারে মধ্যে একাধিক স্ট্রিং ভ্যালু রয়েছে।

আরও জটিল JSON Object তৈরি

আপনি চাইলে আরও জটিল স্ট্রাকচারও তৈরি করতে পারেন, যেমন:

  • একাধিক স্তরের (nested) অবজেক্ট, যেমন একটি অবজেক্টের মধ্যে আরও অবজেক্ট এবং অ্যারে থাকতে পারে।
  • টাইপ নির্ভর করে ভ্যালু সংযুক্ত করা, যেমন স্ট্রিং, নাম্বার, বুলিয়ান, অ্যারে বা অবজেক্ট।

উদাহরণ: আরও জটিল JSON Object

import org.json.JSONArray;
import org.json.JSONObject;

public class AdvancedComplexJSONObjectExample {
    public static void main(String[] args) {
        // Outer JSON Object
        JSONObject outerObject = new JSONObject();
        outerObject.put("name", "Jane Doe");

        // Orders JSON Array (Nested Objects)
        JSONArray orders = new JSONArray();
        JSONObject order1 = new JSONObject();
        order1.put("orderID", "ORD12345");
        order1.put("amount", 250.75);

        // Items in order1 (JSONArray)
        JSONArray items1 = new JSONArray();
        items1.put("Laptop");
        items1.put("Mouse");
        order1.put("items", items1);
        orders.put(order1);

        // Second Order
        JSONObject order2 = new JSONObject();
        order2.put("orderID", "ORD12346");
        order2.put("amount", 150.50);

        // Items in order2 (JSONArray)
        JSONArray items2 = new JSONArray();
        items2.put("Smartphone");
        items2.put("Charger");
        order2.put("items", items2);
        orders.put(order2);

        // Adding Orders Array to Outer Object
        outerObject.put("orders", orders);

        // Print the Complex JSON Object
        System.out.println(outerObject.toString(4));  // Indentation for readability
    }
}

আউটপুট

{
    "name": "Jane Doe",
    "orders": [
        {
            "orderID": "ORD12345",
            "amount": 250.75,
            "items": [
                "Laptop",
                "Mouse"
            ]
        },
        {
            "orderID": "ORD12346",
            "amount": 150.5,
            "items": [
                "Smartphone",
                "Charger"
            ]
        }
    ]
}

সারাংশ

org.json লাইব্রেরির মাধ্যমে আপনি সহজেই একটি complex JSON object তৈরি করতে পারেন, যা nested JSON objects এবং arrays ধারণ করতে পারে। এই পদ্ধতিটি JSON ডাটা স্ট্রাকচারকে আরও জটিল এবং উচ্চমানের করে তোলে, যেখানে বিভিন্ন ধরণের তথ্য একত্রে সংরক্ষণ করা যায়। JSON অবজেক্ট এবং অ্যারে ম্যানিপুলেট করার জন্য put(), get(), getJSONArray(), getJSONObject() ইত্যাদি মেথড ব্যবহার করে আপনি প্রয়োজনীয় ডাটা তৈরি, এক্সট্র্যাক্ট বা ম্যানিপুলেট করতে পারেন।


Content added By

Nested JSON Object এবং JSONArray ম্যানেজমেন্ট

47
47

Nested JSON Object এবং JSONArray হল JSON ডেটা স্ট্রাকচারের এমন উপাদান যা অন্য JSON অবজেক্ট অথবা অ্যারে ধারণ করতে পারে। এটি জটিল ডেটা মডেল তৈরি করতে ব্যবহৃত হয়, যেখানে একটি অবজেক্ট বা অ্যারে অন্য একাধিক অবজেক্ট অথবা অ্যারের মধ্যে অন্তর্ভুক্ত থাকে।

এই প্রবন্ধে, আমরা দেখব কিভাবে org.json লাইব্রেরি ব্যবহার করে Nested JSON Object এবং JSONArray ম্যানেজ করা যায়।

Nested JSON Object এবং JSONArray কি?

  • Nested JSON Object: এটি একটি JSON অবজেক্টের ভিতরে আরেকটি JSON অবজেক্ট থাকতে পারে। এর মাধ্যমে আপনি জটিল ডেটা স্ট্রাকচার তৈরি করতে পারেন।
  • Nested JSONArray: এটি একটি JSON অ্যারের ভিতরে অন্য একটি JSON অ্যারে থাকতে পারে। এটি ডেটা গ্রুপ করার জন্য ব্যবহৃত হয়।

উদাহরণ: Nested JSON Object

একটি Nested JSON Object তৈরি করা এবং সেটি থেকে ডেটা এক্সট্র্যাক্ট করার উদাহরণ:

import org.json.JSONObject;

public class NestedJSONObjectExample {
    public static void main(String[] args) {
        // মূল JSON অবজেক্ট তৈরি
        JSONObject person = new JSONObject();
        
        // Nested JSON অবজেক্ট তৈরি
        JSONObject address = new JSONObject();
        address.put("street", "123 Main St");
        address.put("city", "New York");
        address.put("zipcode", "10001");
        
        // মূল অবজেক্টে Nested অবজেক্ট যোগ করা
        person.put("name", "John Doe");
        person.put("age", 30);
        person.put("address", address);
        
        // JSON অবজেক্টের আউটপুট
        System.out.println(person.toString());
        
        // Nested JSON Object থেকে ডেটা এক্সট্র্যাক্ট করা
        String name = person.getString("name");
        JSONObject nestedAddress = person.getJSONObject("address");
        String street = nestedAddress.getString("street");
        
        System.out.println("Name: " + name);
        System.out.println("Street: " + street);
    }
}

এখানে, person JSON অবজেক্টে আরেকটি JSON অবজেক্ট address আছে, যেটি street, city, এবং zipcode নামক কীগুলির মান ধারণ করে। এইভাবে আপনি একটি JSON অবজেক্টে আরেকটি অবজেক্ট যোগ করতে পারেন এবং প্রয়োজন অনুসারে ডেটা এক্সট্র্যাক্ট করতে পারেন।

Nested JSONArray Example

এখানে একটি Nested JSONArray তৈরি করা এবং সেটি থেকে ডেটা এক্সট্র্যাক্ট করার উদাহরণ:

import org.json.JSONArray;
import org.json.JSONObject;

public class NestedJSONArrayExample {
    public static void main(String[] args) {
        // মূল JSONArray তৈরি
        JSONArray students = new JSONArray();
        
        // Nested JSONArray তৈরি
        JSONArray courses = new JSONArray();
        courses.put("Math");
        courses.put("Science");
        
        // প্রথম ছাত্রের JSON অবজেক্ট তৈরি
        JSONObject student1 = new JSONObject();
        student1.put("name", "John");
        student1.put("age", 21);
        student1.put("courses", courses);
        
        // Nested JSONArray তে JSON অবজেক্ট যোগ করা
        students.put(student1);
        
        // JSON অ্যারের আউটপুট
        System.out.println(students.toString());
        
        // Nested JSONArray থেকে ডেটা এক্সট্র্যাক্ট করা
        JSONObject firstStudent = students.getJSONObject(0);
        String studentName = firstStudent.getString("name");
        JSONArray studentCourses = firstStudent.getJSONArray("courses");
        String firstCourse = studentCourses.getString(0);
        
        System.out.println("Student Name: " + studentName);
        System.out.println("First Course: " + firstCourse);
    }
}

এখানে, students একটি JSONArray, যার মধ্যে একটি JSON অবজেক্ট student1 রয়েছে। এই JSON অবজেক্টে একটি Nested JSONArray courses রয়েছে, যা ছাত্রের কোর্সের তালিকা ধারণ করে।

Nested JSON Object এবং JSONArray এর ম্যানেজমেন্ট কৌশল

  1. Nested JSON Object Access: JSON অবজেক্টের মধ্যে থাকা অন্য JSON অবজেক্ট অ্যাক্সেস করতে getJSONObject() মেথড ব্যবহার করা হয়।
  2. Nested JSONArray Access: JSON অ্যারের মধ্যে থাকা অন্যান্য JSONArray অ্যাক্সেস করতে getJSONArray() মেথড ব্যবহার করা হয়।
  3. Data Extraction: getString(), getInt(), getJSONArray(), getJSONObject() মেথড ব্যবহার করে ডেটা এক্সট্র্যাক্ট করা হয়।
  4. Error Handling: যদি কোন কীগুলির মান না থাকে, তবে opt() মেথড ব্যবহার করা যেতে পারে, যা null রিটার্ন করবে পরিবর্তে অ্যাপ্লিকেশন ক্র্যাশ হওয়ার।

JSON Object এবং JSONArray ম্যানিপুলেশন

Data Insertion

আপনি নতুন ডেটা JSON অবজেক্ট বা JSONArray-তে put() মেথড দিয়ে যোগ করতে পারেন।

JSONObject obj = new JSONObject();
obj.put("name", "Jane Doe");
obj.put("age", 25);

Data Modification

ডেটা আপডেট করতে একই কীগুলি ব্যবহার করতে পারেন:

obj.put("age", 26);  // age আপডেট করা

Removing Data

JSON অবজেক্ট থেকে ডেটা মুছতে remove() মেথড ব্যবহার করা হয়:

obj.remove("name");  // "name" কীগুলি মুছে ফেলা

Practical Use Cases

  1. Complex Data Models: Nested JSON objects এবং arrays জটিল ডেটা মডেল তৈরিতে ব্যবহৃত হয়, যেমন ব্যবহৃত পণ্য তালিকা, কমপ্লেক্স কাস্টমার ডেটা, হায়ারার্কিক্যাল ডেটাবেস আউটপুট ইত্যাদি।
  2. API Responses: অনেক ওয়েব API-এর প্রতিক্রিয়া (response) JSON ফরম্যাটে থাকে, যেখানে ডেটা প্রায়ই Nested JSON objects এবং arrays নিয়ে গঠিত থাকে।
  3. Configuration Files: অ্যাপ্লিকেশন কনফিগারেশন ফাইলগুলি, যেখানে বিভিন্ন সেটিংস এবং সাব-সেটিংস থাকে, সাধারণত JSON ফরম্যাটে লেখা হয় এবং এগুলো Nested JSON স্ট্রাকচার ধারণ করে।

সারাংশ

Nested JSON Objects এবং Nested JSONArray আপনাকে আরও জটিল ডেটা স্ট্রাকচার তৈরি এবং পরিচালনা করতে সহায়তা করে। আপনি যখন অনেক লেভেলের ডেটা মডেল তৈরি করতে চান বা ডেটা হায়ারার্কি ম্যানেজ করতে চান, তখন এই Nested JSON স্ট্রাকচারের ব্যবহার প্রয়োজনীয় হয়ে পড়ে। org.json লাইব্রেরির সাহায্যে আপনি খুব সহজে এই ধরনের স্ট্রাকচার তৈরি এবং এক্সট্র্যাক্ট করতে পারেন।

Content added By

উদাহরণ সহ Complex JSON Parsing

52
52

org.json লাইব্রেরি Java-তে JSON ডেটা প্রক্রিয়াকরণের জন্য একটি সহজ এবং শক্তিশালী টুলসেট প্রদান করে। যখন JSON ডেটা জটিল (Complex) হয়ে যায়, তখন সেটি পার্স বা এক্সট্র্যাক্ট করা একটু কঠিন হতে পারে, তবে org.json লাইব্রেরির সাহায্যে আপনি খুব সহজেই এমন জটিল JSON ডেটা পার্স করতে পারেন।

এই টিউটোরিয়ালে, আমরা একটি জটিল JSON ডেটা ফাইল পার্স করার উদাহরণ দেখব, যা বিভিন্ন ধরনের ডেটা (অবজেক্ট, অ্যারে, স্ট্রিং, নাম্বার ইত্যাদি) ধারণ করে।

Complex JSON উদাহরণ

ধরা যাক, আমাদের একটি JSON ডেটা আছে, যা নিচের মতো দেখতে:

{
    "employee": {
        "name": "John Doe",
        "age": 30,
        "address": {
            "street": "123 Main St",
            "city": "New York",
            "zipcode": "10001"
        },
        "skills": ["Java", "Python", "JavaScript"],
        "isPermanent": true,
        "salary": 75000.50
    }
}

এটি একটি জটিল JSON অবজেক্ট, যার মধ্যে একটি অবজেক্ট (employee), একটি অ্যারে (skills), এবং বিভিন্ন প্রপার্টি রয়েছে। আমাদের এই JSON ডেটাটি পার্স করার জন্য org.json লাইব্রেরি ব্যবহার করব।

Complex JSON Parsing এর উদাহরণ

1. JSON স্ট্রিং থেকে JSONObject তৈরি করা এবং ডেটা এক্সট্র্যাক্ট করা

import org.json.JSONArray;
import org.json.JSONObject;

public class ComplexJSONParsing {
    public static void main(String[] args) {
        // JSON ডেটা স্ট্রিং
        String jsonString = "{"
                + "\"employee\": {"
                + "\"name\": \"John Doe\","
                + "\"age\": 30,"
                + "\"address\": {"
                + "\"street\": \"123 Main St\","
                + "\"city\": \"New York\","
                + "\"zipcode\": \"10001\""
                + "},"
                + "\"skills\": [\"Java\", \"Python\", \"JavaScript\"],"
                + "\"isPermanent\": true,"
                + "\"salary\": 75000.50"
                + "}"
                + "}";

        // JSONObject তৈরি করা
        JSONObject jsonObject = new JSONObject(jsonString);

        // "employee" অবজেক্টে ডেটা এক্সট্র্যাক্ট করা
        JSONObject employee = jsonObject.getJSONObject("employee");

        // "name", "age", "isPermanent", এবং "salary" এক্সট্র্যাক্ট করা
        String name = employee.getString("name");
        int age = employee.getInt("age");
        boolean isPermanent = employee.getBoolean("isPermanent");
        double salary = employee.getDouble("salary");

        // "address" অবজেক্ট থেকে ডেটা এক্সট্র্যাক্ট করা
        JSONObject address = employee.getJSONObject("address");
        String street = address.getString("street");
        String city = address.getString("city");
        String zipcode = address.getString("zipcode");

        // "skills" অ্যারে থেকে ডেটা এক্সট্র্যাক্ট করা
        JSONArray skills = employee.getJSONArray("skills");
        String skill1 = skills.getString(0);  // "Java"
        String skill2 = skills.getString(1);  // "Python"
        String skill3 = skills.getString(2);  // "JavaScript"

        // এক্সট্র্যাক্ট করা ডেটা প্রিন্ট করা
        System.out.println("Employee Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Permanent: " + isPermanent);
        System.out.println("Salary: " + salary);
        System.out.println("Street: " + street);
        System.out.println("City: " + city);
        System.out.println("Zipcode: " + zipcode);
        System.out.println("Skills: " + skill1 + ", " + skill2 + ", " + skill3);
    }
}

কোডের ব্যাখ্যা

  1. JSON স্ট্রিং: আমরা প্রথমে একটি জটিল JSON স্ট্রিং তৈরি করেছি, যা একটি employee অবজেক্ট ধারণ করে, যা নিজে কিছু অন্যান্য অবজেক্ট, অ্যারে এবং প্রপার্টি ধারণ করে।
  2. JSONObject তৈরি করা: new JSONObject(jsonString) এর মাধ্যমে JSON স্ট্রিং থেকে একটি JSONObject তৈরি করা হয়েছে।
  3. বিভিন্ন ডেটা এক্সট্র্যাক্ট করা:
    • getString("key"): স্ট্রিং মান এক্সট্র্যাক্ট করার জন্য।
    • getInt("key"): ইন্টিজার মান এক্সট্র্যাক্ট করার জন্য।
    • getBoolean("key"): বুলিয়ান মান এক্সট্র্যাক্ট করার জন্য।
    • getDouble("key"): ডাবল নাম্বার এক্সট্র্যাক্ট করার জন্য।
    • getJSONObject("key"): একটি অবজেক্ট এক্সট্র্যাক্ট করার জন্য (যেমন "address")।
    • getJSONArray("key"): একটি অ্যারে এক্সট্র্যাক্ট করার জন্য (যেমন "skills")।
  4. JSONArray থেকে ডেটা এক্সট্র্যাক্ট করা: getJSONArray() মেথড ব্যবহার করে একটি অ্যারে এক্সট্র্যাক্ট করা হয়েছে এবং তার ভ্যালুগুলি ইনডেক্সের মাধ্যমে সংগ্রহ করা হয়েছে।

আউটপুট

Employee Name: John Doe
Age: 30
Permanent: true
Salary: 75000.5
Street: 123 Main St
City: New York
Zipcode: 10001
Skills: Java, Python, JavaScript

আরও কিছু JSON Parsing টিপস

  • optString("key"): optString মেথড ব্যবহার করলে যদি কীরটি উপস্থিত না থাকে, তাহলে এটি null রিটার্ন করবে, যা getString মেথডের তুলনায় বেশি নিরাপদ।
  • optJSONObject("key"): optJSONObject মেথড ব্যবহার করলে অবজেক্ট না পাওয়া গেলে null রিটার্ন করবে।
  • optJSONArray("key"): optJSONArray মেথড ব্যবহার করে আপনি অ্যারে বের করতে পারেন, এবং যদি অ্যারে না থাকে তাহলে এটি null রিটার্ন করবে।

সারাংশ

org.json লাইব্রেরি ব্যবহার করে Java-তে জটিল JSON ডেটা পার্স করা একটি সরল প্রক্রিয়া। JSONObject, JSONArray ক্লাসের মাধ্যমে আপনি JSON অবজেক্ট এবং অ্যারে থেকে ডেটা এক্সট্র্যাক্ট করতে পারেন। org.json লাইব্রেরি আপনাকে JSON ডেটার বিভিন্ন অংশ যেমন স্ট্রিং, নাম্বার, অবজেক্ট, অ্যারে ইত্যাদি সহজে প্রক্রিয়াকরণ করতে সাহায্য করে।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion