کار با JSON در #C
سه شنبه 6 مهر 1395دراین مقاله با مفهوم JSon آشنا خواهید شد. و همچنین یاد خواهید گرفت که چگونه JSon String را در #C ایجاد کنید و چگونه آن را بخوانید.
JSon چیست؟
(Java Script Object Notation) JSonیک طرح استاندارد، برای تبادل داده ای که قابل خواندن برای انسان است ، می باشد. به نظر می رسد که JSon به خاطر توسعه دهندگان ، به گونه ای طراحی شده است که قابل خواندن برای انسان( ‘human-readable’) میباشد. JSon با سه ساختار کار می کند و مانند XML می باشد ،که بسیار راحت تر و کوتاه تر می باشد.اگر شما با XML کار کرده باشید ، قطعا سریع ترJSon را یاد خواهید گرفت.
مقایسه JSon با XML:
می خواهیم این عبارت را بررسی کنیم { "name": "Stephen Cousins" },
اگر شما از JSon استفاده کنید ، شما باید عبارت خود را در داخل تگ “{ }” قرار دهید.
"name" یک کلید می باشد.
"Stephen Cousins" یک مقدار برای کلید "name" می باشد.
JSon دارای منطق، مانند {“key”: “value”} می باشد.
و همچنین JSon دارای آرایه می باشد.
حال می خواهیم عبارت های دیگری را مورد بررسی قرار دهیم.
• "students": [ • { "name": "Stephen Cousins" }, • { "name": "Austin A. Newton" }, • { "name": "Adam Wilhite" }, • { "name": "Enis Kurtay YILMAZ" } • ] • ”
"students" ،کلید می باشد.
"”] و “[“ براکت ها نشان دهنده ی آرایه ها می باشند.این به این معناست که آرایه ها در داخل براکت ها قرار می گیرند.
تمامی عبارت های داخل براکت، مقادیر کلید “students” می باشند.
همانطور که می بینید در این جا چهار آرایه در داخل براکت داریم که نام چهار دانش آموز را نشان میدهد.
چگونه رشته JSonرا در C# ایجاد کنیم.
لطفا یک پروژه کنسولی در ویژوال استودیو ایجاد کنید.
روی File کلیک کنید ، New، Project ، و سپس Console Application (.NET Framework3.5)
اگر شما می خواهید یک رشته JSon ایجاد کنید ویا اینکه آن را بخوانید،شما به یک JSon Serialize یا Deserialize نیاز دارید. بنابراین ، لطفا Solution Explorer خود را باز کنید ، روی Reference راست کلیک کنید و سپس روی "Manage NuGet Packages" کلیک کنید.
لطفا“Newtonsoft.JSON” در Nuget Package Manager ، سرچ کنید و آن را نصب کنید.
لطفا “using Newtonsoft.Json;" را add کنید اگر فراموش کنید که آن را اضافه کنید ، شما نمی توانید هیچ رشته ای از JSon را مرتب (Serialize) کنید.
مثالی از JSon:
1. JSON 2. { 3. "universities": 4. { 5. "university": "South Carolina State University", 6. "students": [ 7. { 8. "name": "Stephen Cousins" 9. }, { 10. "name": "Austin A. Newton" 11. }, { 12. "name": "Adam Wilhite" 13. }, { 14. "name": "Enis Kurtay YILMAZ" 15. }] 16. }
حال ،شما باید یک کلاس برای JSon ایجاد کنید. اگر می خواهید به راحتی این کار را انجام دهید ، شما می توانید از وب سایت jsonutils.com استفاده کنید.
ایجاد رشته JSon در C#
کد C# برای ایجاد JSONرشته :
1. using System; 2. using System.Collections.Generic; 3. using Newtonsoft.Json; 4. 5. Namespace EKY.CSharpCornerJSONArticle 6. { 7. public class Student 8. { 9. public string name { 10. get; 11. set; 12. } 13. } 14. public class Universities { 15. public string university { 16. get; 17. set; 18. } 19. public IList < Student > students { 20. get; 21. set; 22. } 23. } 24. public class ClassUniversities { 25. public Universities universities { 26. get; 27. set; 28. } 29. } 30. class Program 31. { 32. static void Main(string[] args) 33. { 34. Class Universities university1 = newClassUniversities(); 35. 36. university1.universities = newUniversities(); 37. university1.universities.university = "South Carolina StateUniversity"; 38. 39. List < Student > listStudent = newList < Student > (); 40. Student student1 = newStudent { 41. name = "StephenCousins" 42. }; 43. Student student2 = newStudent { 44. name = "Austin A. Newton" 45. }; 46. Student student3 = newStudent { 47. name = "Adam Wilhite" 48. }; 49. Student student4 = newStudent { 50. name = "Enis Kurtay YILMAZ" 51. }; 52. 53. listStudent.Add(student1); 54. listStudent.Add(student2); 55. listStudent.Add(student3); 56. listStudent.Add(student4); 57. 58. university1.universities.students = listStudent; 59. String json = JsonConvert.SerializeObject(university1); 60. 61. Console.WriteLine(json); 62. Console.ReadLine(); 63. } 64. } 65. }
نتیجه:
چگونه رشته JSonرا در C# بخوانیم.
این قسمت برای شما آسان تر خواهد بود. شما فقط به یک مثال از رشته JSon و کلاس JSon نیاز دارید.شما می توانید دوباره از وب سایت jsonutils.com برای ایجاد کلاس JSon استفاده کنید.
کد C# برای خواندن رشته JSon از وب سایت :
1. using System; 2. using System.Collections.Generic; 3. using Newtonsoft.Json; 4. using System.Net; 5. using System.IO; 6. 7. namespace EKY.CSharpCornerJSONArticle 8. { 9. public class Category 10. { 11. public int id { 12. get; 13. set; 14. } 15. public string slug { 16. get; 17. set; 18. } 19. public string title { 20. get; 21. set; 22. } 23. public string description { 24. get; 25. set; 26. } 27. public int parent { 28. get; 29. set; 30. } 31. public int post_count { 32. get; 33. set; 34. } 35. } 36. public class Tag { 37. public int id { 38. get; 39. set; 40. } 41. public string slug { 42. get; 43. set; 44. } 45. public string title { 46. get; 47. set; 48. } 49. public string description { 50. get; 51. set; 52. } 53. public int post_count { 54. get; 55. set; 56. } 57. } 58. public class Author { 59. public int id { 60. get; 61. set; 62. } 63. public stringslug { 64. get; 65. set; 66. } 67. public string name { 68. get; 69. set; 70. } 71. public string first_name { 72. get; 73. set; 74. } 75. public string last_name { 76. get; 77. set; 78. } 79. public string nickname { 80. get; 81. set; 82. } 83. public strin gurl { 84. get; 85. set; 86. } 87. public string description { 88. get; 89. set; 90. } 91. } 92. public class CustomFields {} 93. public class Post { 94. public int id { 95. get; 96. set; 97. } 98. public string type { 99. get; 100. set; 101. } 102. public string slug { 103. get; 104. set; 105. } 106. public string url { 107. get; 108. set; 109. } 110. public string status { 111. get; 112. set; 113. } 114. public string title { 115. get; 116. set; 117. } 118. public string title_plain { 119. get; 120. set; 121. } 122. public string content { 123. get; 124. set; 125. } 126. public string excerpt { 127. get; 128. set; 129. } 130. public string date { 131. get; 132. set; 133. } 134. public string modified { 135. get; 136. set; 137. } 138. public IList < Category > categories { 139. get; 140. set; 141. } 142. public IList < Tag > tags { 143. get; 144. set; 145. } 146. public Author author { 147. get; 148. set; 149. } 150. public IList < object > comments { 151. get; 152. set; 153. } 154. public IList < object > attachments { 155. get; 156. set; 157. } 158. public int comment_count { 159. get; 160. set; 161. } 162. public stringc omment_status { 163. get; 164. set; 165. } 166. public CustomFields custom_fields { 167. get; 168. set; 169. } 170. } 171. public class Query { 172. public bool ignore_sticky_posts { 173. get; 174. set; 175. } 176. } 177. public class ClassWebsiteposts { 178. public string status { 179. get; 180. set; 181. } 182. public int count { 183. get; 184. set; 185. } 186. public int count_total { 187. get; 188. set; 189. } 190. public int pages { 191. get; 192. set; 193. } 194. public IList < Post > posts { 195. get; 196. set; 197. } 198. public Query query { 199. get; 200. set; 201. } 202. } 203. class Program 204. { 205. static void Main(string[] args) 206. { 207. string url = "http://www.eniskurtayyilmaz.com/api/get_posts/"; 208. 209. HttpWebRequestrequest = WebRequest.Create(url) asHttpWebRequest; 210. string jsonValue = ""; 211. using(HttpWebResponseresponse = request.GetResponse() asHttpWebResponse) 212. { 213. StreamReaderreader = newStreamReader(response.GetResponseStream()); 214. jsonValue = reader.ReadToEnd(); 215. } 216. 217. ClassWebsitepostswebsitePosts = JsonConvert.DeserializeObject < ClassWebsiteposts > (jsonValue); 218. } 219. } 220. }
نتیجه:
- C#.net
- 9k بازدید
- 18 تشکر