JSON Serialization এবং Deserialization

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Web API তৈরি করা (Building Web APIs) |
293
293

JSON (JavaScript Object Notation) একটি লাইটওয়েট ডেটা ইন্টারচেঞ্জ ফরম্যাট যা মানব-readable এবং মেশিন-readable। JSON খুবই জনপ্রিয় এবং ওয়েব অ্যাপ্লিকেশন, API, এবং ডেটাবেসের মধ্যে ডেটা আদান-প্রদানে ব্যবহৃত হয়।

Serialization এবং Deserialization হল দুটি প্রধান প্রসেস যা JSON ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয়।

  • Serialization: একটি অবজেক্ট বা ডেটা স্ট্রাকচারকে JSON ফরম্যাটে রূপান্তর করা।
  • Deserialization: JSON ফরম্যাটে থাকা ডেটাকে একটি অবজেক্ট বা ডেটা স্ট্রাকচারে রূপান্তর করা।

ASP.NET Core অ্যাপ্লিকেশনগুলিতে JSON Serialization এবং Deserialization সাধারণত System.Text.Json বা Newtonsoft.Json লাইব্রেরি ব্যবহার করে করা হয়।


JSON Serialization

Serialization হল একটি অবজেক্টকে JSON ফরম্যাটে রূপান্তরিত করার প্রক্রিয়া। এটি সাধারণত API রেসপন্স তৈরি করতে, ডেটাবেসে তথ্য সংরক্ষণ করতে অথবা ফাইল সিস্টেমে ডেটা সেভ করার জন্য ব্যবহৃত হয়।

উদাহরণ: Serialization

ধরা যাক আমাদের একটি Person ক্লাস রয়েছে এবং আমরা এই ক্লাসের অবজেক্টকে JSON ফরম্যাটে রূপান্তর করতে চাই।

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Email { get; set; }
}
System.Text.Json ব্যবহার করে Serialization
using System.Text.Json;

Person person = new Person
{
    Name = "John Doe",
    Age = 30,
    Email = "john.doe@example.com"
};

// JSON Serialization
string jsonString = JsonSerializer.Serialize(person);
Console.WriteLine(jsonString);

এখানে, JsonSerializer.Serialize() মেথডটি Person অবজেক্টকে JSON স্ট্রিংয়ে রূপান্তরিত করে।

আউটপুট:

{"Name":"John Doe","Age":30,"Email":"john.doe@example.com"}
Newtonsoft.Json (Json.NET) ব্যবহার করে Serialization
using Newtonsoft.Json;

Person person = new Person
{
    Name = "John Doe",
    Age = 30,
    Email = "john.doe@example.com"
};

// JSON Serialization
string jsonString = JsonConvert.SerializeObject(person);
Console.WriteLine(jsonString);

আউটপুট:

{"Name":"John Doe","Age":30,"Email":"john.doe@example.com"}

JSON Deserialization

Deserialization হল JSON ফরম্যাটে থাকা ডেটাকে একটি অবজেক্ট বা ডেটা স্ট্রাকচারে রূপান্তরিত করার প্রক্রিয়া। এটি সাধারণত API থেকে প্রাপ্ত JSON ডেটাকে অ্যাপ্লিকেশনের মধ্যে ব্যবহারযোগ্য অবজেক্টে রূপান্তর করতে ব্যবহৃত হয়।

উদাহরণ: Deserialization

ধরা যাক, আমাদের কাছে একটি JSON স্ট্রিং আছে এবং আমরা সেটি Person অবজেক্টে রূপান্তর করতে চাই।

{
  "Name": "John Doe",
  "Age": 30,
  "Email": "john.doe@example.com"
}
System.Text.Json ব্যবহার করে Deserialization
using System.Text.Json;

string jsonString = "{\"Name\":\"John Doe\",\"Age\":30,\"Email\":\"john.doe@example.com\"}";

// JSON Deserialization
Person person = JsonSerializer.Deserialize<Person>(jsonString);
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}, Email: {person.Email}");

এখানে, JsonSerializer.Deserialize<T>() মেথডটি JSON স্ট্রিংকে Person ক্লাসের অবজেক্টে রূপান্তরিত করে।

আউটপুট:

Name: John Doe, Age: 30, Email: john.doe@example.com
Newtonsoft.Json (Json.NET) ব্যবহার করে Deserialization
using Newtonsoft.Json;

string jsonString = "{\"Name\":\"John Doe\",\"Age\":30,\"Email\":\"john.doe@example.com\"}";

// JSON Deserialization
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}, Email: {person.Email}");

আউটপুট:

Name: John Doe, Age: 30, Email: john.doe@example.com

JSON Serialization এবং Deserialization এর অন্যান্য বৈশিষ্ট্য

1. নেস্টেড অবজেক্ট:

আপনি JSON এ নেস্টেড অবজেক্টও ব্যবহার করতে পারেন। যখন আপনার Person ক্লাসের মধ্যে অন্য একটি অবজেক্ট থাকে, তখনও আপনি তা সহজেই Serialize এবং Deserialize করতে পারবেন।

উদাহরণস্বরূপ:

public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
}

public class Person
{
    public string Name { get; set; }
    public Address Address { get; set; }
}

Serialization:

Person person = new Person
{
    Name = "John Doe",
    Address = new Address { Street = "123 Main St", City = "New York" }
};

string jsonString = JsonSerializer.Serialize(person);
Console.WriteLine(jsonString);

Deserialization:

string jsonString = "{\"Name\":\"John Doe\",\"Address\":{\"Street\":\"123 Main St\",\"City\":\"New York\"}}";
Person person = JsonSerializer.Deserialize<Person>(jsonString);
Console.WriteLine($"Name: {person.Name}, Street: {person.Address.Street}, City: {person.Address.City}");

2. Custom Date Format:

যদি আপনার JSON ডেটাতে তারিখের নির্দিষ্ট ফরম্যাট থাকতে হয়, তাহলে আপনি ডেটা ফরম্যাট কাস্টমাইজ করতে পারেন।

Newtonsoft.Json ব্যবহার করে কাস্টম ডেটা ফরম্যাট:

public class Person
{
    public string Name { get; set; }
    [JsonConverter(typeof(JsonDateConverter))]
    public DateTime DateOfBirth { get; set; }
}

public class JsonDateConverter : JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        return objectType == typeof(DateTime);
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        writer.WriteValue(((DateTime)value).ToString("yyyy-MM-dd"));
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        return DateTime.ParseExact((string)reader.Value, "yyyy-MM-dd", null);
    }
}

3. Null ভ্যালু হ্যান্ডলিং:

আপনি যদি JSON ডেটাতে null ভ্যালু সহ কাজ করেন, তবে DefaultValueHandling বা NullValueHandling অপশন ব্যবহার করে তা কনফিগার করতে পারেন।


সারাংশ

JSON Serialization এবং Deserialization হলো দুটি গুরুত্বপূর্ণ প্রক্রিয়া যা ডেটাকে JSON ফরম্যাটে রূপান্তর এবং JSON থেকে অবজেক্টে রূপান্তর করতে ব্যবহৃত হয়। System.Text.Json এবং Newtonsoft.Json উভয়ই JSON ডেটা প্রসেস করার জন্য শক্তিশালী লাইব্রেরি, এবং আপনি যে কোনো একটি ব্যবহার করতে পারেন আপনার অ্যাপ্লিকেশন প্রয়োজন অনুযায়ী। JSON Serialization এবং Deserialization-এর মাধ্যমে আপনি অ্যাপ্লিকেশনে ডেটার আদান-প্রদান এবং প্রক্রিয়া সহজভাবে সম্পন্ন করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion