הפורמט מתבסס על תצורה מילונית ההופך אותו לקריא מאוד. הקריאות והקלות של הפורמט ביססו אותו כפורמט פופולרי בקרב מתכנתים ומשומש בתצורות רבות כיום- בשרתים, במסדי נתונים, במערכות אינדוקס ועוד!
בזכות הפופולריות הפורמט משומש לא רק כקבצים אלה גם כפורמט להעביר מידע!
הסיבה לזה - RFC. המסמכים האלו עוזרים לנו לבדוק תקינות של מערכת - כי הם כתובים בצורה כזו שאומרת בדיוק מה צריך לקרות.
בהינתן ספריית json - אנחנו יכולים לוודא אם היא תקינה או לא. אם הספרייה לא יכולה להמיר מערכים של מחרוזות - היא לא תקינה.
ועוד סיבה זה כדי לבדוק תמיכה - האם הסטנדרט תומך בתכונה שאנחנו רוצים או לא?
Json בפייתון
שימו לב שגם בפייתון ה - {} משמשים למילונים! זה הופך את השימוש ב-JSON לפשוט!
בשביל להמיר לפורמט Json יש 2 פונקציות עיקריות:
json.dumps() - להמיר אובייקט למחרוזת
json.loads() - להמיר מחרוזת לאובייקט
המרת אובייקטים:
1 2 3 4 5 6 7
import json
info = { 'name':'Bob', 'age': 43}
infoStr = json.dumps(info)
print(infoStr)
כדי להדפיס Json יפה יותר ניתן להשתמש ב-indent=1 כפרמטר לפונקציה dumps. הפרמטר מגדיר את הפורמט שבו ה-Json יודפס. indent=1 מוסיף שורות חדשות - ככה שלא כל הפלט יהיה מאוד צפוף.
1 2 3 4 5 6 7
import json
info = { 'name':'Bob', 'age': 43}
infoStr = json.dumps(info, indent=1)
print(infoStr)
המרת מחרוזות:
1 2 3 4 5 6 7
import json
info = '{ "name" :"Bob", "age": 43}'
infoDict = json.loads(info)
print(infoDict['name'])
תרגיל
כתבו קובץ ג’ייסון שמתאר קבוצה. לכל קבוצה יש:
שם קבוצה
חברי הקבוצה
מוטו
כתובת
לכל חבר קבוצה יש:
שם
גיל
תפקיד
תכתבו תכנית העוברת על ימי השבוע ומקבלת מהמשתמש החלטה אם זה יום עבודה או יום חופש על התכנית להדפיס את ימי השבוע על המסך בפורמט JSON.
שימו לב - תמדלו את התצורה של ה-json לפני שאתם כותבים את הקוד! למשל - רשימה של אובייקטים כשלכל אובייקט יש את שם היום והגדרה שלו.
מצאו את המוצר עם ההפרש הגדול ביותר בין המחיר הגבוה ביותר שלו, למחיר הנמוך ביותר שלו. למשל אם המחירים הם [1,2,3] אזי ההפרש הוא בין 3 ל-1. וההפרש יהיה 2.