Dart এ JSON Encode এবং Decode করা

JSON এবং Serialization (JSON এবং সিরিয়ালাইজেশন) - ডার্ট প্রোগ্রামিং (Dart Programming) - Computer Programming

371

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 স্ট্রিং থেকে অবজেক্টে ডেসিরিয়ালাইজ করতে পারেন। এই বৈশিষ্ট্যগুলি ডেভেলপারদের জন্য তাদের অ্যাপ্লিকেশনগুলির মধ্যে তথ্য বিনিময়ের ক্ষমতা বৃদ্ধি করে।

Content added By
Promotion

Are you sure to start over?

Loading...