logo

ניתוח JSON ב-C#

מבוא:

ניתוח JSON ב-C# היא משימה נפוצה עבור מפתחים שבונים אפליקציות שצורכות נתוני JSON. JSON מייצג סימון אובייקט JavaScript והוא פורמט משתנה של ייצוג נתונים קל משקל, האופטימלי עבור משתמשים רגילים לקריאה ולכתיבה וקל למכונות לנתח וליצור. במאמר זה, נראה כיצד לנתח JSON ב-C# באמצעות המובנה NET JSON ניתוח ספריות.

ניתן להשיג ניתוח JSON ב-C# בדרכים שונות: באמצעות ה ספריית Newtonsoft.Json או באמצעות ספריית System.Text.Json הוצג ב .NET Core 3.0 . שתי הספריות הן אפשרויות פופולריות עבור ניתוח JSON ב-C# ומספקות פונקציונליות דומות.

שיטה 1: שימוש בחבילת Newtonsoft.Json

אחת החבילות הפופולריות ביותר לניתוח JSON ב-C# היא Newtonsoft.Json . זוהי חבילת צד שלישי המספקת דרך פשוטה וגמישה לביצוע סידורי וסיריאליזציה של נתוני JSON.

להשתמש Newtonsoft.Json בפרויקט C# שלך, עליך להתקין אותו תחילה. אתה יכול להתקין אותו דרך NuGet מנהל חבילות ב סטודיו חזותי או על ידי הפעלת הפקודה הבאה במסוף מנהל החבילות:

מחרוזת פיצול c++

קוד:

 Install-Package Newtonsoft.Json 

לאחר ההתקנה, אתה יכול להתחיל להשתמש בו בקוד שלך. הנה דוגמה כיצד לנתח JSON באמצעות Newtonsoft.Json:

קוד C#:

 using Newtonsoft.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; dynamic data = JsonConvert.DeserializeObject(json); string name = data.name; int age = data.age; string city = data.city; Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

בדוגמה זו, אנו מגדירים מחרוזת JSON ומסירים אותה באמצעות ה- JsonConvert.DeserializeObject שיטה מסופקת על ידי Newtonsoft.Json . השיטה מחזירה אובייקט דינמי, המאפשר לנו לגשת לנתוני ה-JSON באמצעות תחביר מאפיין.

מחרוזת java ריקה

שיטה 2: שימוש במרחב השמות System.Text.Json

מתחיל עם .NET Core 3.0 ו .NET 5.0, C# מספקת גם ספריית JSON Parsing מובנית בשם System.Text.Json . זהו JSON סריאלייזר ו-deserializer קל משקל ומהיר הכלולים ב- .נֶטוֹ זמן ריצה.

הנה דוגמה כיצד לנתח JSON באמצעות System.Text.Json:

קוד C#:

 using System.Text.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; JsonDocument doc = JsonDocument.Parse(json); JsonElement root = doc.RootElement; string name = root.GetProperty('name').GetString(); int age = root.GetProperty('age').GetInt32(); string city = root.GetProperty('city').GetString(); Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

בדוגמה זו אנו משתמשים ב- JsonDocument.Parse שיטה מסופקת על ידי System.Text.Json לנתח את מחרוזת JSON. השיטה מחזירה א JsonDocument אובייקט, המייצג את נתוני ה-JSON המנותחים. לאחר מכן נוכל לגשת לנתוני JSON באמצעות ה JsonElement הכיתה ושלה GetProperty שיטה.

שיטה 3: שימוש במחלקת JavaScriptSerializer

דרך נוספת לנתח JSON ב-C# היא באמצעות ה JavaScriptSerializer כיתה, שהיא חלק מה- מערכת.Web.Extensions הַרכָּבָה. כיתה זו הוצגה ב. NET Framework 3.5 ומספק דרך פשוטה לנטרל נתוני JSON לאובייקט מוקלד חזק.

כדי להשתמש ב JavaScriptSerializer מחלקה, עליך ליצור מחלקה שמייצגת את אובייקט ה-JSON שברצונך לבטל את הרצף. למחלקה צריכים להיות מאפיינים התואמים לשמות ולסוגי הנתונים של מאפייני אובייקט JSON. לדוגמה, נניח שיש לך את אובייקט ה-JSON שלהלן:

אלגוריתם k-nn

אובייקט JSON:

 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

אתה יכול ליצור מחלקה שמייצגת את האובייקט הזה באופן הבא:

קוד C#:

 public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } 

לאחר שהגדרת את המחלקה, תוכל להשתמש ב- JavaScriptSerializer מחלקה כדי לבטל את נתוני ה-JSON למופע של המחלקה Person:

קוד C#:

רידימה טיווארי
 string json = '{'name':'John Doe','age':30,'email':'[email protected]'}'; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize(json); 

בדוגמה שלמעלה, תחילה הגדרנו מחרוזת המכילה את נתוני ה-JSON. לאחר מכן יצרנו מופע של ה JavaScriptSerializer מחלקה והשתמשה בשיטת Deserialize שלה כדי לנתח את נתוני ה-JSON למופע של המחלקה Person.

ראוי לציין כי JavaScriptSerializer לכיתה יש מגבלות בהשוואה לשתי השיטות האחרות שדנו בהן. לדוגמה, הוא אינו תומך בחלק מהתכונות המתקדמות יותר של JSON, כגון טיפול בערכי null או המרה בין מוסכמות שמות של camelCase ו-PascalCase. כמו כן, אין לו תמיכה מובנית לביטול סדרת מערכי JSON.

סיכום:

במאמר זה, חקרנו שתי דרכים לנתח JSON ב-C#: שימוש ב- Newtonsoft.Json הספרייה ושימוש ב- System.Text.Json סִפְרִיָה. שתי הספריות מספקות יכולות ניתוח רב עוצמה של JSON ונמצאות בשימוש נרחב על ידי מפתחים שבונים יישומי C# שצורכים נתוני JSON.