کتابخانه Newtonsoft.Json سی شارپ – کار با جیسون

ساختار جیسون، به‌عنوان یک ساختار استاندارد متنی جهت انتقال داده و جایگزینی برای XML، محبوبیت بسیار زیادی دارد. برای کار با این نوع ساختار در سی شارپ، می‌توانید از کتابخانه‌ی Newtonsoft.Json استفاده کنید؛ که یک فریمورک بسیار بهینه جهت کار با جیسون در دات نت می‌باشد.

ویژگی‌ها

  • سریالایز و دیسریالاز انواع آبجکت‌های دات‌نت (تبدییل به جیسون و برعکس آن تبدیل از جیسون به آبجکت به صورت خودکار)
  • عملکرد بالا (50درصد سریع‌تر از DataContractJsonSerializer و 250درصد سریع‌تر ازJavaScriptSerializer)
  • متن‌باز (سورس کد در دسترس عموم)
  • امکان استفاده از تکنولوژی LINQ
  • استفاده آسان
  • اجرا در همه جا (کراس پلتفرم و چندسکویی)
    Windows, Windows Store, Windows Phone, Mono, Xamarin
  • قابلیت JSON Path
  • پشتیبانی از XML! امکان تبدیل XML به جیسون و برعکس.
  • بسیار محبوب با بیش از 100میلیون دانلود.

نصب و راه اندازی

در محیط ویژوال استودیو و پروژه‌ی خود، از منوی Tools، وارد NuGet Package Manager شده و روی Package Manager Console کلیک کنید. دستور زیر را تایپ کرده و Enter را بزنید تا کتابخانه نصب شود:

Install-Package Newtonsoft.Json

روش استفاده

تبدیل آبجکت به جیسون:

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };

string json = JsonConvert.SerializeObject(product);
// {
//   "Name": "Apple",
//   "Expiry": "2008-12-28T00:00:00",
//   "Sizes": [
//     "Small"
//   ]
// }

کافیست تا آبجکت خود را ایجاد کرده و سپس از طریق متد SerializeObject کلاس JsonConvert، آن را به یک رشته‌ی جیسون تبدیل کنیم. این متد، تمامی ویژگی‌ها را به کلیدها و مقادیر جیسون تبدیل می‌کند.


تبدیل جیسون به آبجکت:

string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject<Movie>(json);

string name = m.Name;
// Bad Boys

کافیست تا رشته‌ی جیسونی که در اختیار داریم را از طریق متد DeserializeObject کلاس JsonConvert، به آبجکت متناظر با آن جیسون تبدیل کنیم. یعنی کلاس مربوط به آبجکت بایستی شامل آن ویژگی‌ها باشد تا مقادیر در آن قرار گیرند.


استفاده از LINQ:

JArray array = new JArray();
array.Add("Manual text");
array.Add(new DateTime(2000, 5, 23));

JObject o = new JObject();
o["MyArray"] = array;

string json = o.ToString();
// {
//   "MyArray": [
//     "Manual text",
//     "2000-05-23T00:00:00"
//   ]
// }

صفحات رسمی

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

cp-codfk

نظرات ثبت شده بدون دیدگاه

توضیحات پیشنهادی نظرات اشتراک