Tree Model এবং Object Model এর মধ্যে পার্থক্য

JSON Tree Model ব্যবহার - জ্যাকসন (Jackson) - Java Technologies

321

Jackson একটি জনপ্রিয় Java লাইব্রেরি যা JSON ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। Jackson দুটি প্রধান পদ্ধতির মাধ্যমে JSON ডেটা ম্যানিপুলেট করতে দেয়: Tree Model এবং Object Model। এদের প্রত্যেকটির নিজস্ব বৈশিষ্ট্য এবং ব্যবহারক্ষেত্র রয়েছে। নিচে এদের মধ্যে প্রধান পার্থক্য এবং উদাহরণ দেওয়া হলো।


1. Tree Model

Tree Model JSON ডেটাকে একটি tree-like structure-এ রূপান্তরিত করে। এতে JSON ডেটা DOM (Document Object Model) এর মতো নোড আকারে উপস্থাপিত হয়, যেখানে JSON ডেটা dynamic এবং non-typed হয়।

বৈশিষ্ট্য:

  • JSON ডেটা dynamic এবং flexible
  • JSON স্ট্রাকচার পরিবর্তন এবং নেভিগেট করার সুবিধা।
  • টাইপ সেফটি নেই (type-safe নয়)।
  • ছোট বা অজানা স্ট্রাকচারের JSON ডেটা প্রক্রিয়াকরণের জন্য কার্যকর।
  • JsonNode ক্লাসের মাধ্যমে ডেটা পরিচালিত হয়।

Tree Model উদাহরণ:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class TreeModelExample {
    public static void main(String[] args) throws Exception {
        String json = """
                      {
                          "name": "John Doe",
                          "age": 30,
                          "address": {
                              "city": "New York",
                              "zip": "10001"
                          }
                      }
                      """;

        ObjectMapper mapper = new ObjectMapper();

        // JSON কে Tree Model এ রূপান্তর
        JsonNode rootNode = mapper.readTree(json);

        // ডেটা নেভিগেশন
        String name = rootNode.get("name").asText();
        int age = rootNode.get("age").asInt();
        String city = rootNode.get("address").get("city").asText();

        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("City: " + city);
    }
}

আউটপুট:

Name: John Doe
Age: 30
City: New York

2. Object Model

Object Model JSON ডেটাকে সরাসরি Java Objects এ map করে। এটি type-safe এবং strongly-typed

বৈশিষ্ট্য:

  • JSON ডেটা সরাসরি Java ক্লাসে bind হয়।
  • Type-safe এবং well-structured
  • Pre-defined ডেটা স্ট্রাকচার থাকা দরকার।
  • ডেটার সাথে কাজ করা সহজ, কারণ এটি সরাসরি Java Objects এ রূপান্তরিত হয়।
  • Serialization এবং Deserialization সহজতর হয়।

Object Model উদাহরণ:

import com.fasterxml.jackson.databind.ObjectMapper;

public class ObjectModelExample {
    public static void main(String[] args) throws Exception {
        String json = """
                      {
                          "name": "John Doe",
                          "age": 30,
                          "address": {
                              "city": "New York",
                              "zip": "10001"
                          }
                      }
                      """;

        ObjectMapper mapper = new ObjectMapper();

        // JSON কে Java Object এ রূপান্তর
        Person person = mapper.readValue(json, Person.class);

        // Java Object এর ডেটা প্রিন্ট করা
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
        System.out.println("City: " + person.getAddress().getCity());
    }
}

// Java Class Definitions
class Person {
    private String name;
    private int age;
    private Address address;

    // Getters and Setters
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
    public Address getAddress() { return address; }
    public void setAddress(Address address) { this.address = address; }
}

class Address {
    private String city;
    private String zip;

    // Getters and Setters
    public String getCity() { return city; }
    public void setCity(String city) { this.city = city; }
    public String getZip() { return zip; }
    public void setZip(String zip) { this.zip = zip; }
}

আউটপুট:

Name: John Doe
Age: 30
City: New York

Tree Model vs Object Model: পার্থক্য

ফিচারTree ModelObject Model
ব্যবহারিক কাঠামোJSON ডেটাকে নোড হিসেবে উপস্থাপন করে।JSON ডেটা সরাসরি Java Objects এ ম্যাপ করে।
ডেটা টাইপDynamic এবং Non-typed।Type-safe এবং Strongly-typed।
ডেটা প্রসেসিংUnknown বা Flexible JSON স্ট্রাকচারের জন্য কার্যকর।Pre-defined স্ট্রাকচারের জন্য কার্যকর।
Performanceতুলনামূলক ধীর, কারণ নেভিগেশনের প্রয়োজন।দ্রুত, কারণ সরাসরি Object এ কাজ করে।
API ClassJsonNode (Tree-like structure)।Custom Java POJO Classes।
ব্যবহার ক্ষেত্রDynamic বা জটিল JSON প্রক্রিয়াকরণ।Simple এবং Pre-defined JSON স্ট্রাকচার।

  • Tree Model: অজানা বা ডায়নামিক JSON ডেটার জন্য ব্যবহার করুন।
  • Object Model: Type-safe এবং নির্ধারিত ডেটা স্ট্রাকচারের JSON প্রক্রিয়াকরণের জন্য আদর্শ।

আপনার প্রয়োজন অনুসারে সঠিক মডেল নির্বাচন করা গুরুত্বপূর্ণ।

Content added By
Promotion

Are you sure to start over?

Loading...