مقدمهای بر JSON و C#
JSON (JavaScript Object Notation) فرمت متن باز و سبکی است که برای تبادل دادهها بین سرور و کلاینت به کار میرود. در زبان برنامهنویسی C#، کار با JSON بسیار ساده و راحت است. این فرمت به دلیل سادگی و خوانایی، به سرعت در حال تبدیل شدن به استانداردی جهانی برای تبادل دادهها است.
کار با JSON در C#
برای کار با JSON در C#، معمولاً از کتابخانه "Newtonsoft.Json" یا "System.Text.Json" استفاده میشود. این کتابخانهها امکانات متعددی برای تبدیل اشیاء C# به فرمت JSON و برعکس ارائه میدهند.
نصب کتابخانه
برای شروع، باید کتابخانه Newtonsoft.Json را به پروژهتان اضافه کنید. این کار را میتوانید از طریق NuGet Package Manager انجام دهید:
```
Install-Package Newtonsoft.Json
```
تبدیل شیء C# به JSON
برای تبدیل یک شیء C# به فرمت JSON، میتوانید از متد `JsonConvert.SerializeObject` استفاده کنید. به عنوان مثال:
```csharp
using Newtonsoft.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
var person = new Person { Name = "Ali", Age = 30 };
string json = JsonConvert.SerializeObject(person);
Console.WriteLine(json);
```
این کد یک شیء `Person` را به فرمت JSON تبدیل میکند.
تجزیه JSON به شیء C#
برای تبدیل یک رشته JSON به شیء C#، از متد `JsonConvert.DeserializeObject` بهره میبرید:
```csharp
string json = "{\"Name\":\"Ali\", \"Age\":30}";
Person person = JsonConvert.DeserializeObject<Person>(json);
Console.WriteLine($"{person.Name}, {person.Age}");
```
این کد رشته JSON را به یک شیء `Person` تبدیل میکند.
نتیجهگیری
کار با JSON در C# بسیار ساده و موثر است. با استفاده از کتابخانههای موجود، میتوانید به راحتی دادهها را از یک فرمت به فرمت دیگر تبدیل کنید. این کار نه تنها به بهبود عملکرد برنامه کمک میکند، بلکه موجب افزایش خوانایی و نگهداری آسانتر کد میشود.
کار با JSON در #C: راهنمای جامع و کامل
JSON (JavaScript Object Notation) یکی از محبوبترین فرمتهای تبادل داده است. در برنامهنویسی #C، کار با JSON بسیار رایج است، چون این زبان امکانات قدرتمندی برای تبدیل دادههای JSON به اشیاء و برعکس دارد. در ادامه، به صورت کامل و جامع، نحوه کار با JSON در #C را بررسی میکنیم.
۱. نصب کتابخانههای مورد نیاز
در نسخههای جدید #C، معمولاً از کتابخانه `System.Text.Json` استفاده میشود. اما برای پروژههایی که نیاز به قابلیتهای پیشرفتهتر دارید، میتوانید از کتابخانه محبوب `Newtonsoft.Json` یا همان `Json.NET` بهره ببرید.
برای نصب `Newtonsoft.Json` از طریق NuGet Package Manager، دستور زیر را وارد کنید:
```bash
Install-Package Newtonsoft.Json
```
۲. سریسازی و دیسریسازی JSON
سریسازی (Serialization) یعنی تبدیل اشیاء به رشته JSON، و دیسریسازی (Deserialization) یعنی برعکس، تبدیل رشته JSON به اشیاء.
الف) نمونه کار با `System.Text.Json`
# تبدیل شیء به JSON:
```csharp
using System.Text.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Person person = new Person { Name = "Ali", Age = 30 };
string jsonString = JsonSerializer.Serialize(person);
Console.WriteLine(jsonString);
```
# تبدیل JSON به شیء:
```csharp
string jsonString = "{\"Name\":\"Ali\",\"Age\":30}";
Person person = JsonSerializer.Deserialize<Person>(jsonString);
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
```
ب) نمونه کار با `Newtonsoft.Json`
# تبدیل شیء به JSON:
```csharp
using Newtonsoft.Json;
Person person = new Person { Name = "Ali", Age = 30 };
string jsonString = JsonConvert.SerializeObject(person);
Console.WriteLine(jsonString);
```
# تبدیل JSON به شیء:
```csharp
string jsonString = "{\"Name\":\"Ali\",\"Age\":30}";
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
```
۳. کار با فایلهای JSON
برای خواندن و نوشتن فایلهای JSON، کافی است فایلها را با `File.ReadAllText()` یا `File.WriteAllText()` مدیریت کنید.
نوشتن شیء به فایل JSON:
```csharp
string jsonString = JsonSerializer.Serialize(person);
File.WriteAllText("person.json", jsonString);
```
خواندن شیء از فایل JSON:
```csharp
string jsonString = File.ReadAllText("person.json");
Person personFromFile = JsonSerializer.Deserialize<Person>(jsonString);
```
۴. مدیریت آرایهها و لیستها
در کار با JSON، اکثر مواقع نیاز دارید لیستی از اشیاء را تبدیل کنید.
نمونه:
```csharp
List<Person> people = new List<Person>
{
new Person { Name = "Ali", Age = 30 },
new Person { Name = "Sara", Age = 25 }
};
// سریسازی لیست:
string jsonList = JsonSerializer.Serialize(people);
// دیسریسازی لیست:
List<Person> deserializedPeople = JsonSerializer.Deserialize<List<Person>>(jsonList);
```
۵. نکات مهم و ترفندها
- همیشه مطمئن شوید نوع دادهها صحیح هستند، وگرنه ارورهای زمان اجرا میگیرد.
- برای مدیریت تاریخها، بهتر است قالبهای مناسب را تعیین کنید.
- در صورت نیاز به کنترل دقیقتر بر روی JSON، میتوانید از `JsonDocument` و `JsonElement` استفاده کنید.
- در نسخههای قدیمیتر، `Newtonsoft.Json` گزینههای بیشتری دارد و برخی امکانات پیشرفتهتر را فراهم میکند.
۶. نتیجهگیری
کار با JSON در #C بسیار آسان است، چه با `System.Text.Json` که در نسخههای جدید ارائه شده، چه با `Newtonsoft.Json` که گزینهای قدرتمند و پرکاربرد است. با درک صحیح مفاهیم سریسازی و دیسریسازی، میتوانید در پروژههای خود به راحتی دادههای JSON را مدیریت کنید و ارتباطات موثری برقرار نمایید.
اگر سوال دارید یا نیاز به مثالهای بیشتر دارید، بگویید!