Dart এ JSON Encode এবং Decode করা
Dart-এ JSON ডেটা পরিচালনা করার জন্য dart:convert লাইব্রেরি ব্যবহার করা হয়। JSON ডেটা কার্যকরভাবে সিরিয়ালাইজ (Encode) এবং ডেসিরিয়ালাইজ (Decode) করার জন্য Dart-এ jsonEncode এবং jsonDecode ফাংশনগুলি প্রদান করা হয়।
১. JSON Encode (সিরিয়ালাইজেশন)
JSON Encode একটি অবজেক্ট (যেমন Map বা List) কে JSON স্ট্রিংয়ে রূপান্তর করার প্রক্রিয়া। Dart-এ jsonEncode ফাংশন ব্যবহার করে এটি করা হয়।
উদাহরণ: JSON Encode করা
import 'dart:convert';
void main() {
// Create a Map representing a user
Map<String, dynamic> user = {
'name': 'Alice',
'age': 30,
'isStudent': false,
'courses': ['Math', 'Science'],
};
// Serialize the Map to JSON
String jsonString = jsonEncode(user);
print(jsonString); // Output: {"name":"Alice","age":30,"isStudent":false,"courses":["Math","Science"]}
}
২. JSON Decode (ডেসিরিয়ালাইজেশন)
JSON Decode একটি JSON স্ট্রিংকে Dart অবজেক্টে (যেমন Map বা List) রূপান্তর করার প্রক্রিয়া। Dart-এ jsonDecode ফাংশন ব্যবহার করে এটি করা হয়।
উদাহরণ: JSON Decode করা
import 'dart:convert';
void main() {
String jsonString = '{"name":"Alice","age":30,"isStudent":false,"courses":["Math","Science"]}';
// Deserialize the JSON string to a Map
Map<String, dynamic> user = jsonDecode(jsonString);
print('Name: ${user['name']}'); // Output: Name: Alice
print('Age: ${user['age']}'); // Output: Age: 30
print('Is Student: ${user['isStudent']}'); // Output: Is Student: false
print('Courses: ${user['courses']}'); // Output: Courses: [Math, Science]
}
৩. কাস্টম ক্লাসের জন্য Encode এবং Decode
আপনি যদি কাস্টম ক্লাস ব্যবহার করতে চান, তবে সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন করতে কিছু অতিরিক্ত পদক্ষেপ নিতে হবে।
উদাহরণ: কাস্টম ক্লাসের জন্য সিরিয়ালাইজেশন
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(jsonString); // Output: {"name":"Alice","age":30,"isStudent":false,"courses":["Math","Science"]}
// Deserialize JSON back to User
User newUser = User.fromJson(jsonDecode(jsonString));
print('Name: ${newUser.name}, Age: ${newUser.age}'); // Output: Name: Alice, Age: 30
}
উপসংহার
Dart-এ JSON Encode এবং Decode করা একটি সহজ প্রক্রিয়া। dart:convert লাইব্রেরির মাধ্যমে, আপনি অবজেক্টগুলিকে JSON স্ট্রিংয়ে সিরিয়ালাইজ এবং JSON স্ট্রিং থেকে অবজেক্টে ডেসিরিয়ালাইজ করতে পারেন। এই বৈশিষ্ট্যগুলি ডেভেলপারদের জন্য তাদের অ্যাপ্লিকেশনগুলির মধ্যে তথ্য বিনিময়ের ক্ষমতা বৃদ্ধি করে।
Read more