Gson ব্যবহার করে ডাটা Serialize এবং Deserialize করা
Gson লাইব্রেরী ২০০৮ সালে গুগল তাদের নিজেদের ইন্টারনাল কাজ করার জন্য মূলত ডেভেলপ করেছিল ,পরে তারা এইটাকে ফ্রি করে দেয় ।এখন এইটার Version 2.8.2 চলতেছে ।
Gson ব্যবহার করে খুব সহজে জাভা অবজেক্টকে Json ফরম্যাটে এবং Json ডাটা কে জাভা অবজেক্টকে রুপান্তর করা যায় ।জাভা অবজেক্টকে Json ডাটা ফরম্যাটে রুপান্তর করাই Serialization এবং Json ডাটা কে জাভা অবজেক্টে রিপ্রেজেন্ট করার ই Deserialization ।
Dependencies
dependencies {
compile 'com.google.code.gson:gson:2.8.2'
}
Serialization
Student নামে একটা ক্লাস ডিক্লেয়ার করলাম,যেইখানে
studentName
studentId
department
studentMail নামে স্ট্রিং টাইপের
studentCgpa নামে double টাইপের এবং isRetake নামে boolean flag
ভ্যারিয়েবল নিলাম
public class Student {
String studentName;
String studentId;
String department;
String studentMail;
double studentCgpa;
boolean isRetake;
public Student(String studentName, String studentId, String department, String studentMail, double studentCgpa, boolean isRetake) {
this.studentName = studentName;
this.studentId = studentId;
this.department = department;
this.studentMail = studentMail;
this.studentCgpa = studentCgpa;
this.isRetake = isRetake;
}
}
তারপর Student ক্লাসের একটা অবজেক্ট ক্রিয়েট করে ,ঐ অবজেক্টকে Json কনভার্ট করব Gson ব্যবহার করে ।তাহলে Student ক্লাসের একটা অবজেক্ট ক্রিয়েট করি
Student student=new Student(
"poran",
"161-15-7020",
"Dept. of CSE",
"poran.cse@gmail.com",
3.50,
false
);
এখন Gson এর একটা অবজেক্ট ক্রিয়েট করে toJson() মেথড কে কল করতে হবে,প্যারামিটার হিসেবে student নামে যে অবজেক্টেটা ক্রিয়েট করেছিলাম সেইটা পাস করে দিব।আর এই মেথড রিটার্ন করবে স্ট্রিং টাইপের Json Data.
Gson gson=new Gson();
String jsonData=gson.toJson(student);
রান করলে আমরা আউটপুট পাব এইরকম
“{“studentName”:”poran”,”studentId”:”161–15–7020",”department”:”Dept. of CSE”,”studentMail”:”poran.cse@gmail.com”,”studentCgpa”:3.5,”isRetake”:false}’’ স্ট্রিং আকারে ,এইটাকে আবার ফরম্যাটিং করলে Json এর মত হয়ে যাবে
{
"studentName":"poran",
"studentId":"161-15-7020",
"department":"Dept. of CSE",
"studentMail":"poran.cse@gmail.com",
"studentCgpa":3.5,
"isRetake":false
}
Deserialization
Deserialization হচ্ছে Serialization ঠিক বিপরীত ।এইখানে Json কে অবজেক্টে রুপান্তরিত করব।jsonData নামক স্ট্রিং ভ্যারিয়েবলে json Data স্টোর করলাম
String jsonData="{"studentName":"poran","studentId":"161-15-7020","department":"Dept. of CSE","studentMail":"poran.cse@gmail.com","studentCgpa":3.5,"isRetake":false}";
তারপর আবার আগের মত Gson অবজেক্ট ক্রিয়েট করে ,এর fromJson() মেথডে দুইটি প্যারামিটার পাঠাতে হবে প্রথমটা হচ্ছে স্ট্রিং jsondata সেকেন্ডটা হচ্ছে যেই ক্লাসের অবজক্টে পরিনত করতে চাই ,যেহেতু আমরা Student ক্লাসের অবজেক্টে পরিনত করতে চাই সেহেতু আমরা Sudent.clas দিব এবং এইটা Student ক্লাসের অবজেক্ট রিটার্ন করবে ।
Gson gson=new Gson();
Student student=gson.fromJson(jsonData,Student.class);
সম্পূর্ণ কোড দেখতে Github চেক করতে পারেন
হ্যাপি লার্নিং উইথ কোডিং
এইটা আমার প্রথম লেখা ভুল ত্রুটি থাকতে পারে,তাই ক্ষমা চেয়ে নিচ্ছি ।