کار با JSON در سی شارپ
سلام در این سری از آموزش برنامه نویسی سی شارپ (c#) به آموزش کار با JSON در سی شارپ می پردازیم ابتدا استاندارد JSON را معرفی کرده و در انتها نحوه کار با JSON را در سی شارپ به شما آموزش میدهیم در ادامه با ما همراه باشید تا نحوه استفاده از JSON در سی شارپ را یاد یگرید.
آموزش JSON در سی شارپ
JSON چیست؟
جیسن (JSON) که برخی جیسان و جیسون نیز تلفظ میکنند، مخفف کلمه JavaScript Object Notation بوده و یک استاندارد باز است که با ساختاری خوانا برای انسان و هم ماشین، میتوان اطلاعات و دادههای مختلف از جمله دادههای یک دیتابیس را با استفاده از آن، بین عوامل مختلف مثلاً مرورگر کاربر و یک سایت منتقل کرد یا در فضای ذخیره سازیای، آن را ذخیره نمود.
حتما لینک زیر را مطالعه کنید آموزش کامل قرار گرفته است.
لینک آموزش
اگر آموزش بالا را مطالعه کرده اید و فرق Object و Array را متوحه شده اید به ادامه آموزش بروید.
در ادمه نحوه Parse یا همان تجزیه Json در حالت های مختلف را برای شما قرار میدهیم.
ابتدا توصیه می کنم از کتاب خانه زیر برای پارس Json استفاده کنید.
1 | https://www.newtonsoft.com/json |
نحوه ساخت Json و پارس آن توسط کتاب خانه بالا همانند زیر است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Product product = new Product(); product.Name = "Apple"; product.Expiry = new DateTime(2008, 12, 28); product.Price = 3.99M; product.Sizes = new string[] { "Small", "Medium", "Large" }; string json = JsonConvert.SerializeObject(product); //{ // "Name": "Apple", // "Expiry": "2008-12-28T00:00:00", // "Price": 3.99, // "Sizes": [ // "Small", // "Medium", // "Large" // ] //} Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json); |
اگر از کتاب خانه بالا استفاده کرده باشید و بخواهید پارس کنید کد زیر را بررسی کنید.
1 2 3 | dynamic stuff = JsonConvert.DeserializeObject("{ 'Name': 'Jon Smith', 'Address': { 'City': 'New York', 'State': 'NY' }, 'Age': 42 }"); string name = stuff.Name; string address = stuff.Address.City; |
اگر می خواهید بدون استفاده از کتاب خانه این کار را انجام دهید از کد زیر استفاده کنید.
1 2 3 4 5 6 7 8 9 | var jsonReader = JsonReaderWriterFactory.CreateJsonReader(Encoding.UTF8.GetBytes(@"{ ""Name"": ""Jon Smith"", ""Address"": { ""City"": ""New York"", ""State"": ""NY"" }, ""Age"": 42 }"), new System.Xml.XmlDictionaryReaderQuotas()); // For that you will need to add reference to System.Xml and System.Xml.Linq var root = XElement.Load(jsonReader); Console.WriteLine(root.XPathSelectElement("//Name").Value); Console.WriteLine(root.XPathSelectElement("//Address/State").Value); // For that you will need to add reference to System.Web.Helpers dynamic json = System.Web.Helpers.Json.Decode(@"{ ""Name"": ""Jon Smith"", ""Address"": { ""City"": ""New York"", ""State"": ""NY"" }, ""Age"": 42 }"); Console.WriteLine(json.Name); Console.WriteLine(json.Address.State); |
برای اینکه یک Json را از سمت سروس پارس کنید می توانید از کد زیر استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create("URL"); JArray array = new JArray(); using (var twitpicResponse = (HttpWebResponse)request.GetResponse()) using (var reader = new StreamReader(twitpicResponse.GetResponseStream())) { JavaScriptSerializer js = new JavaScriptSerializer(); var objText = reader.ReadToEnd(); JObject joResponse = JObject.Parse(objText); JObject result = (JObject)joResponse["result"]; array = (JArray)result["Detail"]; string statu = array[0]["dlrStat"].ToString(); } |
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
سلام. با تشکر از وب سایت خوبت. عزیز توی قسمت اخر مقاله منظور از result و Detail و dlrStat چیست؟
میشه کمک کنید