משך: 1.5 שעות אקדמיות (68 דקות).

מטרת השיעור: הסטודנטים ידעו להמיר אובייקטים ל-JSON ובחזרה, ולשלב זאת עם שמירה לקובץ.

בסוף השיעור הסטודנטים צריכים: להשתמש ב-Serialize/Deserialize<T> על מחלקה מותאמת אישית, לשמור ולטעון JSON מקובץ, ולהסביר למה JSON עדיף על פורמט מומצא.

דגש קריטי: קשרו במפורש ל-REST APIs שיופיעו ביחידת ASP.NET Core — JSON הוא לא “עוד פורמט”, הוא שפת התקשורת הסטנדרטית של כל שרת web מודרני.


מהלך השיעור

חלק בשיעורמשךהערות ודגשים
פתיחה וחיבור5 דקותהראו ניסיון לשמור Student עם פורמט מומצא (“דנה,25”) — מה עם פסיק בשם?
הבעיה: פורמט מומצא שברירי10 דקותהדגישו מבנים מקוננים (List בתוך אובייקט) שקשה לייצג ידנית
הרעיון: Serialize15 דקותJsonSerializer.Serialize על Student
הרעיון: Deserialize15 דקותחזרה לאובייקט, הדגישו מפורש
שילוב עם File I/O10 דקותשמירה/טעינה לקובץ .json
תרגול מודרך13 דקותתרגיל 1+2

דגשים להעברת השיעור

  • קשרו JSON קדימה ל-ASP.NET Core (“כל בקשה ותשובה מ-API תהיה ב-JSON — זה בדיוק מה שאתם רואים כאן”) — עוגן חשוב להמשך הקורס.
  • הראו את פלט ה-JSON עצמו (Console.WriteLine(json)) לפני שהוא נטען חזרה — חשוב שסטודנטים “יראו” את הפורמט הטקסטואלי בעצמם, לא רק יסמכו על שהוא “עובד מאחורי הקלעים”.
  • WriteIndented = true שווה להראות בקצרה — JSON קריא לבני אדם בפיתוח, קומפקטי (ברירת המחדל) לתקשורת אמיתית.

מושגים

JSON — פורמט טקסט סטנדרטי לייצוג נתונים מובנים. Serialize — אובייקט C# → מחרוזת JSON. Deserialize — מחרוזת JSON → אובייקט C#.


תרגיל חשיבה

שאלת פתיחה: “אם הייתם צריכים לשלוח נתוני Student (כולל רשימת ציונים) לשרת בחברה אחרת, שכתובה ב-Python לא ב-C# — איך הייתם עושים את זה בלי JSON?”

מהלך: הובילו לתובנה: בלי פורמט סטנדרטי, שתי השפות היו צריכות “להסכים” על פורמט מומצא ולתחזק קוד פרסור מותאם בשני הצדדים. JSON פותר את זה בדיוק כי הוא לא תלוי-שפה — Python, JavaScript, C#, Java — כולם יודעים לקרוא ולכתוב אותו זהה.

מה המרצה מראה בסוף: הראו את קובץ ה-JSON שנוצר (student.json) בעורך טקסט רגיל — הדגישו שהוא קריא לבני אדם וגם למכונה, לא “קוד בינארי מוצפן”. אם אפשר, הראו גם דוגמה קצרה איך אותו JSON נראה כשנטען בפייתון/JavaScript (json.loads/JSON.parse) כדי לחזק את “אותו פורמט, כל שפה”.