סקירה כללית של מצביע JSON

1. סקירה כללית

במדריך זה, נראה כיצד להשתמש ב- JSON Pointer כדי לנווט ולהביא מידע מנתוני JSON.

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

2. הגדרת תלות

ראשית, עלינו להוסיף כמה תלות שלנו pom.xml:

 org.glassfish javax.json 1.1.2 

3. מצביע JSON

JSON ("JavaScript Object Notation") הוא פורמט קל להחלפת נתונים בין מערכות, שצוין במקור על ידי דאגלס קרוקפורד.

למרות שהוא משתמש JavaScript תחביר, זה אינו תלוי בשפה, מכיוון שהתוצאה היא טקסט רגיל.

מצביע JSON (RFC 6901) הוא מאפיין של JSON Processing 1.1 API (JSR 374). זה מגדיר א חוּט שניתן להשתמש בהם לגישה לערכים במסמך JSON. זה יכול להיות קשור למה ש- XPath עושה עבור מסמך XML.

באמצעות שימוש ב- JSON Pointer, אנו יכולים להביא נתונים מקובץ JSON ולשנות אותו.

4. גישה לנתונים

נראה כמה דוגמאות כיצד לבצע פעולות על ידי יישום מחלקה שנקראת JsonPointerCrud.

נניח שיש לנו קובץ JSON שנקרא books.json עם התוכן:

{"library": "הספרייה האישית שלי", "books": [{"title": "Title 1", "author": "Jane Doe"}, {"title": "Title 2", "author": "פלוני אלמוני" } ] }

כדי לגשת לנתונים מאותו קובץ, עלינו לקרוא אותם ולנתח אותם ל- a JsonStructure. אנו יכולים להשיג זאת באמצעות Json.createReader () שיטה, המקבלת InputStream או א FileReader.

כך נוכל לעשות זאת:

קורא JsonReader = Json.createReader (FileReader חדש ("books.json")); JsonStructure jsonStructure = reader.read (); reader.close ();

התוכן יאוחסן בתא JsonStructure לְהִתְנַגֵד. זה האובייקט שנשתמש בו לביצוע פעולות הבאות.

4.1. אחזר נתונים מהקובץ

כדי להשיג ערך יחיד אנו יוצרים a JsonPointer, המודיע לאיזה תג אנו רוצים לקבל את הערך:

JsonPointer jsonPointer = Json.createPointer ("/ ספרייה"); JsonString jsonString = (JsonString) jsonPointer.getValue (jsonStructure); System.out.println (jsonString.getString ());

ציין זאת הדמות הראשונה של זה חוּט הוא '/' - זו דרישה תחבירית.

התוצאה של קטע זה היא:

הספרייה האישית שלי

כדי להביא ערך מרשימה, עלינו לציין את האינדקס שלו (כאשר האינדקס הראשון הוא 0):

JsonPointer jsonPointer = Json.createPointer ("/ ספרים / 1"); JsonObject jsonObject = (JsonObject) jsonPointer.getValue (jsonStructure); System.out.println (jsonObject.toString ());

תפוקות אלה:

"title": "כותרת 2", "author": "John Doe"

4.2. בדוק אם קיים מפתח בקובץ

דרך השיטה containValue, אנו יכולים לבדוק אם הערך המשמש ליצירת המצביע קיים בקובץ JSON:

JsonPointer jsonPointer = Json.createPointer ("/ ספרייה"); נמצא בוליאני = jsonPointer.containsValue (jsonStructure); System.out.println (נמצא); 

התוצאה של קטע זה היא:

נָכוֹן

4.3. הכנס ערך מפתח חדש

אם עלינו להוסיף ערך חדש ל- JSON, ה- createValue הוא זה שיטפל בזה. השיטה createValue עמוס לקבל חוּט, int, ארוך, לְהַכפִּיל, BigDecimal ו ביג-שלם:

JsonPointer jsonPointer = Json.createPointer ("/ סה"כ"); JsonNumber jsonNumber = Json.createValue (2); jsonStructure = jsonPointer.add (jsonStructure, jsonNumber); System.out.println (jsonStructure);

שוב, התפוקה שלנו היא:

{"library": "הספרייה האישית שלי", "total": 2, "books": [{"title": "Title 1", "author": "Jane Doe"}, {"title": "Title 2 "," author ":" John Doe "}]}

4.4. עדכן ערך מפתח

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

JsonPointer jsonPointer = Json.createPointer ("/ סה"כ"); JsonNumber jsonNumberNewValue = Json.createValue (5); jsonStructure = jsonPointer.replace (jsonStructure, jsonNumberNewValue); System.out.println (jsonStructure);

פלט:

{"library": "הספרייה האישית שלי", "total": 5, "books": [{"title": "Title 1", "author": "Jane Doe"}, {"title": "Title 2 "," author ":" John Doe "}]}

4.5. הסר מפתח

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

JsonPointer jsonPointer = Json.createPointer ("/ ספרייה"); jsonPointer.getValue (jsonStructure); jsonStructure = jsonPointer.remove (jsonStructure); System.out.println (jsonStructure);

וכתוצאה מכך:

{"total": 5, "books": [{"title": "Title 1", "author": "Jane Doe"}, {"title": "Title 2", "author": "John Doe" }]}

4.6. הראה את התוכן המלא של הקובץ

אם המצביע נוצר עם ריק חוּט, כל התוכן מאוחזר:

JsonPointer jsonPointer = Json.createPointer (""); JsonObject jsonObject = (JsonObject) jsonPointer.getValue (jsonStructure); System.out.println (jsonObject.toString ());

דוגמת קוד זו תפנה את כל התוכן של ה- jsonStructure.

5. מסקנה

במאמר מהיר זה, סקרנו כיצד לעבוד עם JSON Pointer לביצוע פעולות שונות בנתוני JSON.

וכרגיל, הקוד שקשור להדרכה זו הסתיים ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found