Gson এর fromJson() মেথড এর ব্যবহার

JSON থেকে Java Object (Deserialization) - জিসন (Gson) - Java Technologies

311

Gson এর fromJson() মেথড হল একটি গুরুত্বপূর্ণ মেথড যা JSON ডেটা থেকে Java অবজেক্টে রূপান্তর (Deserialization) করার জন্য ব্যবহৃত হয়। এটি JSON ফর্ম্যাটের স্ট্রিংকে নির্দিষ্ট Java ক্লাসের অবজেক্টে কনভার্ট করে।

fromJson() মেথডের সাধারণ সিনট্যাক্স:

T fromJson(String json, Class<T> classOfT)
  • json: JSON ডেটা যেটি String আকারে থাকে।
  • classOfT: সেই Java ক্লাসের টাইপ যেখানে JSON ডেটা রূপান্তরিত হবে।

ব্যবহার:

১. সাধারণ উদাহরণ:

ধরা যাক, আপনার একটি Person ক্লাস রয়েছে:

class Person {
    String name;
    int age;

    // Constructor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

এখন, যদি JSON ডেটা থাকে:

{
  "name": "John",
  "age": 25
}

তাহলে, fromJson() মেথড ব্যবহার করে JSON থেকে Person অবজেক্টে রূপান্তর করতে হবে:

import com.google.gson.Gson;

public class Main {
    public static void main(String[] args) {
        // JSON স্ট্রিং
        String json = "{\"name\":\"John\",\"age\":25}";

        // Gson অবজেক্ট তৈরি
        Gson gson = new Gson();

        // JSON থেকে Person অবজেক্টে রূপান্তর
        Person person = gson.fromJson(json, Person.class);

        // প্রিন্ট করা
        System.out.println("Name: " + person.name); // Output: Name: John
        System.out.println("Age: " + person.age);   // Output: Age: 25
    }
}

বিস্তারিত ব্যাখ্যা:

  • JSON ডেটা: String json = "{\"name\":\"John\",\"age\":25}"; — এটি JSON ফরম্যাটের স্ট্রিং।
  • gson.fromJson() মেথড: gson.fromJson(json, Person.class) — এখানে JSON স্ট্রিংকে Person ক্লাসের অবজেক্টে রূপান্তরিত করা হয়েছে।
  • Person.classPerson ক্লাসের টাইপ পাস করা হয়, যা Gson জানবে যে JSON ডেটা কোন টাইপের অবজেক্টে রূপান্তরিত হবে।

আউটপুট:

Name: John
Age: 25

অতিরিক্ত উদাহরণ:

২. অন্য ধরনের ডেটা:

ধরা যাক, আপনার একটি Book ক্লাস রয়েছে, যা একটি লিস্ট অব স্ট্রিংয়ের সাথে সম্পর্কিত।

import java.util.List;

class Book {
    String title;
    List<String> authors;

    // Constructor
    public Book(String title, List<String> authors) {
        this.title = title;
        this.authors = authors;
    }
}

এখন, একটি JSON ডেটা:

{
  "title": "Effective Java",
  "authors": ["Joshua Bloch", "James Gosling"]
}

এটি fromJson() ব্যবহার করে রূপান্তর করা যাবে:

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        String json = "{\"title\":\"Effective Java\",\"authors\":[\"Joshua Bloch\",\"James Gosling\"]}";

        // Gson অবজেক্ট তৈরি
        Gson gson = new Gson();

        // JSON থেকে Book অবজেক্টে রূপান্তর
        Book book = gson.fromJson(json, Book.class);

        // Book অবজেক্টের ডেটা প্রিন্ট করা
        System.out.println("Title: " + book.title); // Output: Title: Effective Java
        System.out.println("Authors: " + book.authors); // Output: Authors: [Joshua Bloch, James Gosling]
    }
}

বিস্তারিত ব্যাখ্যা:

  • List authors: এখানে authors একটি লিস্ট, তাই Gson তা সঠিকভাবে রূপান্তর করবে।
  • TypeToken ব্যবহার: যদি জেনেরিক টাইপ ব্যবহৃত হয় (যেমন List), তখন TypeToken ব্যবহার করতে হবে। তবে এখানে শুধুমাত্র একটি ক্লাস টাইপ রূপান্তর হওয়ায়, এটি সরাসরি সম্ভব।

fromJson() মেথডের অন্যান্য ব্যবহার:

৩. জেনেরিক টাইপের রূপান্তর:

যদি আপনার একটি জেনেরিক টাইপের লিস্ট বা কলেকশন থাকে, তাহলে TypeToken ব্যবহার করতে হয়। উদাহরণস্বরূপ:

String json = "[{\"name\":\"Alice\",\"age\":30},{\"name\":\"Bob\",\"age\":25}]";
Type listType = new TypeToken<List<Person>>() {}.getType();
List<Person> personList = gson.fromJson(json, listType);

এখানে TypeToken ব্যবহার করা হয়েছে একটি List<Person> রূপান্তর করতে।


fromJson() মেথডের উপকারিতা:

  • JSON থেকে Java অবজেক্টে ডেটা কনভার্ট করতে সহজ।
  • জেনেরিক টাইপ এবং কমপ্লেক্স অবজেক্ট স্ট্রাকচার সাপোর্ট করে।
  • ব্যবহারকারীকে দ্রুত JSON ডেটা হ্যান্ডল করার সুবিধা দেয়।
Content added By
Promotion

Are you sure to start over?

Loading...