JSON (JavaScript Object Notation) হল একটি লাইটওয়েট ডেটা ইন্টারচেঞ্জ ফর্ম্যাট, যা মানুষের পঠনযোগ্য এবং মেশিন দ্বারা সহজে পার্স করা যায়। এটি ওয়েব অ্যাপ্লিকেশন, APIs, এবং ডেটাবেসের মধ্যে ডেটা আদান-প্রদান করার জন্য সবচেয়ে জনপ্রিয় ফর্ম্যাট। Serialization এবং Deserialization হল JSON ডেটার সাথে কাজ করার দুটি গুরুত্বপূর্ণ প্রক্রিয়া।
- Serialization হল একটি অবজেক্টকে JSON স্ট্রিংয়ে রূপান্তর করার প্রক্রিয়া।
- Deserialization হল JSON স্ট্রিংকে আবার একটি অবজেক্টে রূপান্তর করার প্রক্রিয়া।
এই দুটি প্রক্রিয়া মডেল বা ডেটা অবজেক্টগুলোকে একটি নির্দিষ্ট ফর্ম্যাটে সঞ্চিত এবং স্থানান্তর করার জন্য ব্যবহৃত হয়।
JSON Serialization Techniques
Serialization প্রক্রিয়ায়, অবজেক্টের ডেটা JSON ফর্ম্যাটে রূপান্তরিত হয়, যাতে এটি সংরক্ষণ, ট্রান্সফার বা অন্যান্য অ্যাপ্লিকেশন দ্বারা পড়া যেতে পারে। .NET এ JSON Serialization করার জন্য প্রধানত দুটি জনপ্রিয় লাইব্রেরি ব্যবহৃত হয়: Newtonsoft.Json (Json.NET) এবং System.Text.Json।
1. Using Newtonsoft.Json (Json.NET)
Newtonsoft.Json হল সবচেয়ে জনপ্রিয় JSON লাইব্রেরি, যা .NET অ্যাপ্লিকেশনগুলিতে JSON সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন করতে ব্যবহৃত হয়।
উদাহরণ:
using Newtonsoft.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
Person person = new Person { Name = "John Doe", Age = 30 };
// Serialization: Object to JSON
string jsonString = JsonConvert.SerializeObject(person);
Console.WriteLine(jsonString);
}
}
এই কোডটি Person অবজেক্টকে JSON ফরম্যাটে সিরিয়ালাইজ করে এবং কনসোলে প্রিন্ট করবে।
Output:
{"Name":"John Doe","Age":30}
2. Using System.Text.Json
System.Text.Json .NET Core 3.0 এবং তার পরবর্তী ভার্সনে বিল্ট-ইন JSON সিরিয়ালাইজেশন লাইব্রেরি হিসাবে অন্তর্ভুক্ত করা হয়েছে। এটি নিউটনসফট JSON এর তুলনায় কিছুটা দ্রুত কিন্তু ফিচারসেট একটু সীমিত।
উদাহরণ:
using System.Text.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
Person person = new Person { Name = "John Doe", Age = 30 };
// Serialization: Object to JSON
string jsonString = JsonSerializer.Serialize(person);
Console.WriteLine(jsonString);
}
}
এই কোডটি System.Text.Json ব্যবহার করে JSON সিরিয়ালাইজেশন করে।
Output:
{"Name":"John Doe","Age":30}
JSON Deserialization Techniques
Deserialization প্রক্রিয়া হল JSON স্ট্রিংকে পুনরায় একটি অবজেক্টে রূপান্তর করার প্রক্রিয়া। এটি ডেটার ফর্ম্যাট পরিবর্তন করে এবং অ্যাপ্লিকেশনকে সেই ডেটা ব্যবহার করতে দেয়।
1. Using Newtonsoft.Json (Json.NET)
Newtonsoft.Json ব্যবহার করে JSON স্ট্রিংকে অবজেক্টে রূপান্তর করতে আপনি JsonConvert.DeserializeObject মেথড ব্যবহার করতে পারেন।
উদাহরণ:
using Newtonsoft.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
string jsonString = "{\"Name\":\"John Doe\",\"Age\":30}";
// Deserialization: JSON to Object
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
এখানে, JSON স্ট্রিং jsonString কে Person অবজেক্টে রূপান্তর করা হচ্ছে।
Output:
Name: John Doe, Age: 30
2. Using System.Text.Json
System.Text.Json ব্যবহার করেও JSON স্ট্রিং থেকে অবজেক্টে ডেটা রূপান্তর করা যায়।
উদাহরণ:
using System.Text.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
string jsonString = "{\"Name\":\"John Doe\",\"Age\":30}";
// Deserialization: JSON to Object
Person person = JsonSerializer.Deserialize<Person>(jsonString);
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
এখানে, System.Text.Json ব্যবহার করে JSON স্ট্রিংকে Person অবজেক্টে রূপান্তর করা হচ্ছে।
Output:
Name: John Doe, Age: 30
JSON Serialization and Deserialization with Complex Objects
যখন অবজেক্টে কমপ্লেক্স ডেটা যেমন নেস্টেড অবজেক্ট, অ্যারে বা কোলেকশন থাকে, তখন Serialization এবং Deserialization আরও জটিল হতে পারে। নিচে এই ধরনের উদাহরণ দেখানো হলো:
Example with Nested Objects:
using Newtonsoft.Json;
using System;
public class Address
{
public string Street { get; set; }
public string City { get; set; }
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Address Address { get; set; }
}
public class Program
{
public static void Main()
{
Person person = new Person
{
Name = "John Doe",
Age = 30,
Address = new Address { Street = "123 Main St", City = "Somewhere" }
};
// Serialization
string jsonString = JsonConvert.SerializeObject(person);
Console.WriteLine(jsonString);
// Deserialization
Person deserializedPerson = JsonConvert.DeserializeObject<Person>(jsonString);
Console.WriteLine($"Name: {deserializedPerson.Name}, Address: {deserializedPerson.Address.Street}, {deserializedPerson.Address.City}");
}
}
Output:
{"Name":"John Doe","Age":30,"Address":{"Street":"123 Main St","City":"Somewhere"}}
Deserialized Output:
Name: John Doe, Address: 123 Main St, Somewhere
Conclusion
JSON Serialization এবং Deserialization .NET অ্যাপ্লিকেশনগুলিতে একটি অত্যন্ত সাধারণ কিন্তু গুরুত্বপূর্ণ কাজ। এটি ডেটা স্টোরেজ, ট্রান্সফার এবং অ্যাপ্লিকেশনগুলির মধ্যে ডেটার আদান-প্রদান সহজ করে তোলে। Newtonsoft.Json এবং System.Text.Json দুটি প্রধান লাইব্রেরি, যেগুলি JSON ডেটা পরিচালনা করতে সাহায্য করে এবং এগুলির মধ্যে ব্যবহারের মধ্যে কিছু পার্থক্য রয়েছে, তবে দুটোই কার্যকর এবং খুবই দ্রুত।
Read more