שימוש באבן החן JSON ברובי

קל לקפוץ לניתוח ולייצור ג'ייסון ברובי עם ה ג'סון פנינה. הוא מספק ממשק API לניתוח JSON מטקסט וכן להפקת טקסט JSON מעצמי רובי שרירותיים. זה בקלות ספריית JSON המשמשת ביותר ברובי.

התקנת JSON Gem

ב- Ruby 1.8.7 תצטרך להתקין פנינה. עם זאת, ברובי 1.9.2, ה- ג'סון פנינה מצורפת עם הפצת רובי הליבה. אז אם אתה משתמש 1.9.2, כנראה שאתה מסודר. אם אתה על 1.8.7, תצטרך להתקין פנינה.

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

אם אינך יכול להתקין את גרסת סיומת C, עליך לעשות זאת פנינה להתקין במקום זאת. זוהי אותה פנינה המיושמת ברובי טהור. זה אמור לרוץ בכל מקום שקוד האודם פועל, בכל הפלטפורמות ובמגוון המתורגמנים. עם זאת, זה איטי במידה ניכרת מגירסת סיומת C.

לאחר ההתקנה, יש כמה דרכים לדרוש את פנינה זו. א דורש 'ג'סון' (לאחר תנאי מוקדם דורשים 'אודם' במידת הצורך) ידרוש את הגרסא הזמינה ותעדיף את גרסת סיומת C אם שתיהן מותקנות. א

instagram viewer
דורש 'json / pure' ידרוש במפורש את הגרסא הטהורה, ו דורש 'json / ext' ידרוש במפורש את גרסת סיומת C.

ניתוח JSON

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

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

והתפוקה של התוכנית הזו. שים לב שאם אתה מפעיל תוכנית זו ב- Ruby 1.8.7, הסדר שהמפתחות מוחזרים מה- hash אינו בהכרח אותו הסדר שהם הוכנסו. כך שהתפוקה שלך עשויה להופיע לא בסדר.

ה empls האובייקט עצמו הוא רק חשיש. שום דבר מיוחד בזה. יש לו 4 מפתחות, בדיוק כמו שהיה במסמך JSON. שניים מהמפתחות הם מיתרים, ושניים הם מערכי מיתרים. אין הפתעות, ה- JSON תועתק נאמנה בחפצי רובי לצורך העיון שלך.

וזה בערך כל מה שצריך לדעת על ניתוח JSON. יש כמה סוגיות שעולות, אך אלה יובאו במאמר מאוחר יותר. כמעט בכל מקרה, אתה פשוט קורא מסמך JSON מקובץ או דרך HTTP ומזין אותו אליו JSON.parse.