GoGPT Best VPN GoSearch

סמל OnWorks

jshon - מקוון בענן

הפעל את jshon בספק אירוח חינמי OnWorks דרך Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה jshon שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.

תָכְנִית:

שֵׁם


ג'שון — מנתח JSON עבור המעטפת

תַקצִיר


ג'שון -[P|S|Q|V|C|I|0] [-F path] -[t|l|k|u|p|a] -[s|n] value -[e|i|d] index

תיאור


ג'שון מנתח, קורא ויוצר JSON. הוא נועד להיות שמיש ככל האפשר החל מ-
בתוך המעטפת ומחליף מנתחי אד-הוק שבירים העשויים מ-grep/sed/awk וכן
מנתחים כבדים בני שורה אחת עשויים מפרל/פייתון.

ג'שון טוען טקסט json מ-stdin, מבצע פעולות, ולאחר מכן מציג את הפעולה האחרונה ב-stdout.
חלק מהאפשרויות מפיקות json, אחרות מפיקות סיכומים בטקסט רגיל. מכיוון שב-Bash יש מאוד
מבני נתונים מקוננים גרועים, ג'שון לא מחזיר את ה-JSON כאובייקט מקורי כאובייקט טיפוסי
הספרייה הייתה עושה זאת. במקום זאת ג'שון שומר היסטוריית עריכות בערימה, ואתה מטפל ב
אלמנט ה-JSON העליון.

פעולות


כל פעולה לובשת צורה של אפשרות קצרה. חלקן דורשות ארגומנטים. בעוד שבמקרים רבים
of ג'שון ניתן להעביר פעולות זו דרך זו, יש לשרשר אותן ברצף כדי להפחית
קריאות. כל הדוגמאות משתמשות בדוגמת json זו:

{"a":1,"b":[אמת,לא נכון,ריק,"str"],"c":{"d":4,"e":5}}
jshon [פעולות] < sample.json

רוב השימושים הנפוצים לקריאה בלבד ידרשו רק מספר -e פעולות ואחת -a באמצע ה
אותם.

-t (type) מחזירה מחרוזת, אובייקט, מערך, מספר, bool, null

jshon -t -> אובייקט

-l הפונקציה (length) מחזירה מספר שלם. פועלת רק על מחרוזת, אובייקט ומערך.

jshon -l -> 3

-k הפונקציה (keys) מחזירה רשימה של מפתחות המופרדת בשורה חדשה. פועלת רק על אובייקט.

jshon -k -> abc

-e מדד
(extract) מחזירה ערך json ב-"index". עובד רק על אובייקט, מערך. האינדקס של
המערך הוא מספר שלם.

jshon -ec -> {"d":4,"e":5}

-a (לרוחב) ממפה את הפעולות הנותרות על פני האלמנט הנבחר. פועל רק על אובייקטים
ומערכים. מרובים -a ניתן לקנן קריאות, אם כי הצורך בכך נדיר בפועל.

jshon -eb -a -t -> bool bool מחרוזת null

-s ערך
(string) מחזירה מחרוזת מקודדת ב-json. ניתן להכניס אותה מאוחר יותר לקובץ קיים
מבנה.

jshon -s "לוכסן אחורי" -> "לוכסן אחורי"

-n ערך
‏(nonstring/number) מחזיר אלמנט json. ניתן להכניס אותו מאוחר יותר לאלמנט קיים
מבנה. ערכים תקפים הם 'true', 'false', 'null', 'array', 'object', מספרים שלמים ו-
צפים. קיצורים t, f, n, [] ו-{} בהתאמה גם עובדים.

jshon -n אובייקט -> {}

-u (unstring) מחזירה מחרוזת מפוענחת. עובדת רק על טיפוסים פשוטים: string, int, real,
בוליאני, null.

jshon -eb -e 3 -u -> str

-p (pop) קופצת את המניפולציה האחרונה מהמחסנית, תוך הרצה אחורה של ההיסטוריה. שימושי עבור
חילוץ ערכים מרובים מאובייקט אחד.

jshon -ec -ed -u -p -ee -u -> 4 5

-d מדד
(delete) מסיר פריט במערך או באובייקט. אינדקסים שליליים של מערך יעטפו.
סְבִיב.

jshon -db -> {"a":1,"c":{"d":4,"e":5}}

-i מדד
(insert) זה מסובך. זה ההפך מ-extract. Extract שם תת-אלמנט json
על המחסנית. הפונקציה Insert מסירה תת-אלמנט מהמחסנית ומוסיפה את קטע ה-json הזה.
לתוך המערך/אובייקט הגדול יותר שמתחת. השתמש ב-extract כדי לצלול לתוך עץ ה-json,
delete/string/nonstring כדי לשנות דברים, ו-insert כדי לדחוף את השינויים בחזרה ל-
עֵץ.

jshon -ea -ia -> קובץ ה-json המקורי
jshon -s one -ia -> {"a":"one", ...}

מערכים מטופלים בצורה מיוחדת. העברת מספרים שלמים תוסיף ערך ללא
דריסה. מספרים שלמים שליליים מקובלים, וכך גם המחרוזת 'append'. כדי לדרוס
ערך במערך: מחיקת האינדקס, -n/s את הערך החדש, ולאחר מכן הכנס אותו באינדקס.

jshon -eb -d 0 -sq -i 0 -> {"b":"q",false,null,"str"}

אי-מניפולציה


ישנן מספר מטא-אופציות שאינן עורכות ישירות את ה-json. ניתן לקרוא להן לכל היותר פעם אחת בכל
קְרִיאָה.

-F
(file) קורא מקובץ במקום stdin. האפשרות היחידה שאינה דורשת מניפולציה לקחת
ויכוח.

-P ‏(jsonp) מסיר קריאה חוזרת של jsonp לפני שהוא ממשיך כרגיל.

-S (sort) מחזירה פונקציית json ממוינת לפי מפתח, במקום הסדר המקורי.

-Q (שקט) מבטל דיווח שגיאות ב-stderr, כך שלא תצטרך לפזר "2> /dev/null"
לאורך כל התסריט שלך.

-V (by-value) מאפשר העברה של ערך על מחסנית היסטוריית העריכה. במקרים קיצוניים עם
אלפי ערכים מקוננים עמוק זה עלול לגרום ל ג'שון ריצה לאט פי כמה
תוך שימוש בזיכרון רב פי כמה. עם זאת, ערך לפי בטוח יותר מאשר הפניה לפי ו
בדרך כלל גורם לפחות הפתעה. הפניה באמצעות אפליקציה מופעלת כברירת מחדל מכיוון שאין
סיכון במהלך פעולות קריאה בלבד ובאופן כללי הופך את עריכת ה-json לנוחה יותר.

jshon -ec -n 7 -id -p -> c["d"] == 7
jshon -V -ec -n 7 -id -p -> c["d"] == 5
jshon -V -ec -n 7 -id -ic -> c["d"] == 7

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

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

-I עריכת קבצים (במקום). דורשת שינוי קובץ ולכן עובדת רק עם -F. זהו
מיועד לביצוע שינויים קלים בקובץ json. כאשר משתמשים בו, הפלט הרגיל מודחק.
והתחתית של ערימת העריכה כתובה.

-0 (מפרידי ריק) משנה את המפריד של -u משורה חדשה ל-null. אפשרות זו
משפיע רק על -u מכיוון שזהו הזמן היחיד שבו שורה חדשה יכולה להופיע באופן לגיטימי ב-
פלט.

--גִרְסָה
מחזירה חותמת זמן YYYYMMDD ויוצא.

אחר כלי עבודה


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

jshon ... | sed 's/^$/-/' | paste -s -d '\t\t\n'

פעולה זו מחליפה ריקים ב-'-' וממזגת כל שלוש שורות לשורה אחת.

ישנם יותר ויותר כלים שמייצרים פלט של JSON. לעתים קרובות אלה משתמשים בתבנית בעלת אוריינטציה שורה
היבריד של json/טקסט רגיל שבו כל שורה היא מבנה json עצמאי. למרבה הצער, זה אומר
הפלט בכללותו אינו JSON לגיטימי. ניתן לעבור בלולאה על הנתונים שורה אחר שורה
(יִעוּד ג'שון פעם אחת לכל שורה) או להמיר אותו למערך json לגיטימי. לדוגמה:

בזמן שקראתי את השורה; בצע jshon <<< "$line"; בוצע < <(journalctl -o json)

journalctl -o json | sed -e '1i[' -e '$!s/$/,/' -e '$a]' | jshon

גולף


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

jshon -ec -ed -u -p -ee -u == jshon -ec -ed -upee -u

אני לא ממליץ לעשות את זה (זה מקשה מאוד על ההבנה) אבל יש אנשים ש...
גולף למרות ההשלכות.

יצירה JSON


ג'שון ניתן ליצור json על ידי העברת אובייקט ריק כקלט:

jshon -s one -ia <<< "{}"

מחברים


ג'שון נכתב על ידי קייל קין[מוגן בדוא"ל]עם טלאים של דייב רייזנר
<[מוגן בדוא"ל]>, AndrewF (BSD, OSX, jsonp, מיון), וז'אן-מארק A (סולאריס).

השתמש ב-jshon באינטרנט באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

פקודות לינוקס

Ad




×
פרסומת
❤️קנו, הזמינו או קנו כאן - ללא עלות, עוזר לשמור על שירותים בחינם.