Model Class তৈরি এবং Serialization in Dart
Dart-এ একটি Model Class তৈরি করা এবং সেটিকে Serialization (অবজেক্টকে JSON ফরম্যাটে রূপান্তর করা) একটি সাধারণ প্রক্রিয়া। এটি সাধারণত API থেকে ডেটা মডেল করার জন্য ব্যবহৃত হয়। নিচে Model Class তৈরি এবং Serialization করার প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হলো।
১. Model Class তৈরি
Model Class হল একটি ক্লাস যা আপনার অ্যাপ্লিকেশনের ডেটা মডেলকে প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, যদি আপনি একটি ব্যবহারকারী (User) মডেল তৈরি করতে চান, তাহলে ক্লাসটি দেখতে এরকম হবে:
class User {
String name;
int age;
bool isStudent;
List<String> courses;
User({
required this.name,
required this.age,
required this.isStudent,
required this.courses,
});
// Serialize User to JSON
Map<String, dynamic> toJson() {
return {
'name': name,
'age': age,
'isStudent': isStudent,
'courses': courses,
};
}
// Deserialize JSON to User
factory User.fromJson(Map<String, dynamic> json) {
return User(
name: json['name'],
age: json['age'],
isStudent: json['isStudent'],
courses: List<String>.from(json['courses']),
);
}
}
২. Serialization (JSON এ রূপান্তর)
Serialization হল Model Class-এর একটি অবজেক্টকে JSON ফরম্যাটে রূপান্তর করার প্রক্রিয়া। এই উদাহরণে, toJson মেথডটি ব্যবহার করা হয়েছে।
উদাহরণ: Serialization
import 'dart:convert';
void main() {
// Create a User instance
User user = User(
name: 'Alice',
age: 30,
isStudent: false,
courses: ['Math', 'Science'],
);
// Serialize User to JSON
String jsonString = jsonEncode(user.toJson());
print('Serialized JSON: $jsonString');
}
৩. Deserialization (JSON থেকে পুনরুদ্ধার)
Deserialization হল JSON ফরম্যাটের একটি স্ট্রিংকে Model Class এর একটি অবজেক্টে রূপান্তর করার প্রক্রিয়া। এই উদাহরণে, fromJson ফ্যাক্টরি কনস্ট্রাক্টর ব্যবহার করা হয়েছে।
উদাহরণ: Deserialization
void main() {
String jsonString = '{"name":"Alice","age":30,"isStudent":false,"courses":["Math","Science"]}';
// Deserialize JSON to User
User user = User.fromJson(jsonDecode(jsonString));
print('Deserialized User: ${user.name}, Age: ${user.age}, Is Student: ${user.isStudent}');
}
৪. সম্পূর্ণ উদাহরণ
একসাথে সবকিছু দেখানো:
import 'dart:convert';
// Model class
class User {
String name;
int age;
bool isStudent;
List<String> courses;
User({
required this.name,
required this.age,
required this.isStudent,
required this.courses,
});
// Serialize User to JSON
Map<String, dynamic> toJson() {
return {
'name': name,
'age': age,
'isStudent': isStudent,
'courses': courses,
};
}
// Deserialize JSON to User
factory User.fromJson(Map<String, dynamic> json) {
return User(
name: json['name'],
age: json['age'],
isStudent: json['isStudent'],
courses: List<String>.from(json['courses']),
);
}
}
void main() {
// Create a User instance
User user = User(
name: 'Alice',
age: 30,
isStudent: false,
courses: ['Math', 'Science'],
);
// Serialize User to JSON
String jsonString = jsonEncode(user.toJson());
print('Serialized JSON: $jsonString');
// Deserialize JSON to User
User newUser = User.fromJson(jsonDecode(jsonString));
print('Deserialized User: ${newUser.name}, Age: ${newUser.age}, Is Student: ${newUser.isStudent}');
}
উপসংহার
Dart-এ Model Class তৈরি করা এবং Serialization একটি কার্যকরী প্রক্রিয়া যা API থেকে ডেটা পরিচালনার জন্য সহায়ক। toJson এবং fromJson মেথডগুলি ব্যবহার করে আপনি অবজেক্টগুলিকে JSON এ রূপান্তর করতে এবং JSON থেকে অবজেক্টে রূপান্তর করতে পারেন। এটি ডেটা বিনিময়ের সময় নিরাপত্তা এবং কার্যকারিতা বৃদ্ধি করে।
Read more