ساختار جیسون، بهعنوان یک ساختار استاندارد متنی جهت انتقال داده و جایگزینی برای 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 را بزنید تا کتابخانه نصب شود:
1 |
Install-Package Newtonsoft.Json |
روش استفاده
تبدیل آبجکت به جیسون:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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، آن را به یک رشتهی جیسون تبدیل کنیم. این متد، تمامی ویژگیها را به کلیدها و مقادیر جیسون تبدیل میکند.
تبدیل جیسون به آبجکت:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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" // ] // } |
نظرات ثبت شده بدون دیدگاه