Dart:
JSON এর সাথে কাজ করা
কিভাবে:
Dart dart:convert
লাইব্রেরির সাথে JSON এর জন্য বিল্ট-ইন সাপোর্ট প্রদান করে, যা JSON এনকোড এবং ডিকোড করা সহজ করে তোলে। নিচের উদাহরণগুলি মৌলিক অপারেশন প্রদর্শন করছে:
JSON স্ট্রিং থেকে Dart অবজেক্টে পার্সিং:
import 'dart:convert';
void main() {
// উদাহরণ JSON স্ট্রিং
String jsonString = '{"name": "John", "age": 30, "email": "[email protected]"}';
// JSON থেকে Dart Map এ ডিকোডিং
Map<String, dynamic> user = jsonDecode(jsonString);
print('হ্যালো, ${user['name']}! আপনি ${user['age']} বছরের।');
// আউটপুট: হ্যালো, John! আপনি 30 বছরের।
}
Dart অবজেক্ট থেকে JSON স্ট্রিংএ এনকোডিং:
import 'dart:convert';
void main() {
// উদাহরণ Dart অবজেক্ট
Map<String, dynamic> user = {
'name': 'Jane',
'age': 25,
'email': '[email protected]'
};
// Dart Map থেকে JSON এ এনকোডিং
String jsonString = jsonEncode(user);
print(jsonString);
// আউটপুট: {"name":"Jane","age":25,"email":"[email protected]"}
}
জটিল মডেলের জন্য json_serializable
ব্যবহার:
জটিল ডেটা মডেলের জন্য, ম্যানুয়াল সিরিয়ালাইজেশন বিরক্তিকর হতে পারে। json_serializable
প্যাকেজ এই প্রক্রিয়াটি অটোমেট করে। এটি অতিরিক্ত সেটআপ প্রয়োজন, যার মধ্যে আপনার pubspec.yaml
এ ডিপেনডেন্সি যোগ করা এবং বিল্ড ফাইল তৈরি করা অন্তর্ভুক্ত। সেটাপের পর, আপনি নিম্নলিখিতভাবে এটা ব্যবহার করতে পারেন:
১. অ্যানোটেশন সহ একটি মডেল নির্ধারণ:
import 'package:json_annotation/json_annotation.dart';
part 'user.g.dart';
@JsonSerializable()
class User {
String name;
int age;
String email;
User({required this.name, required this.age, required this.email});
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
Map<String, dynamic> toJson() => _$UserToJson(this);
}
২. সিরিয়ালাইজেশন বয়লারপ্লেট উত্পন্ন করুন:
user.g.dart
ফাইল জেনারেট করতে বিল্ড রানার কমান্ড ব্যবহার করুন:
flutter pub run build_runner build
৩. আপনার মডেল ব্যবহার করুন:
void main() {
// JSON থেকে User এ পার্সিং
Map userMap = jsonDecode('{"name": "John", "age": 30, "email": "[email protected]"}');
User user = User.fromJson(userMap);
print('ব্যবহারকারী: ${user.name}, বয়স: ${user.age}');
// আউটপুট: ব্যবহারকারী: John, বয়স: 30
// User কে ফিরে JSON এ রূপান্তর
String jsonString = jsonEncode(user.toJson());
print(jsonString);
// আউটপুট: {"name":"John","age":30,"email":"[email protected]"}
}
এই উদাহরণগুলি Dart এ JSON এর সাথে মৌলিক এবং উন্নত মিথস্ক্রিয়া প্রদর্শন করে, ডেভেলপারদের তাদের অ্যাপ্লিকেশনে ডেটা সিরিয়ালাইজেশন কাজগুলি নির্বিঘ্নে হ্যান্ডেল করতে সক্ষম করে।