המרת מחרוזת ל- JsonObject עם Gson

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

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

לדוגמא, אנו יכולים להמיר מחרוזות JSON ל- a מַפָּה או ליצור מחלקה מותאמת אישית עם מיפויים.

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

2. תלות של Maven

קודם כל, עלינו לכלול את ה- gson תלות שלנו pom.xml:

 com.google.code.gson gson 2.8.5 

אנו יכולים למצוא את הגרסה האחרונה של gson במרכז מייבן.

3. שימוש JsonParser

הגישה הראשונה שנראה עבור המרת JSON חוּט אל א JsonObject הוא תהליך דו-שלבי המשתמש ב- JsonParser מעמד.

בשלב הראשון עלינו לנתח את המקור שלנו חוּט.

Gson מספק לנו מנתח שנקרא JsonParser, המנתח את ה- JSON שצוין חוּט לעץ ניתוח של JsonElements:

ניתוח JsonElement ציבורי (String json) זורק את JsonSyntaxException

ברגע שיש לנו את שלנו חוּט מעובד ב JsonElement עץ, נשתמש ב- getAsJsonObject () שיטה, שתחזיר את התוצאה הרצויה.

בואו נראה איך נקבל את הגמר שלנו JsonObject:

מחרוזת json = "{\" name \ ": \" Baeldung \ ", \" java \ ": true}"; JsonObject jsonObject = JsonParser חדש (). ניתוח (json) .getAsJsonObject (); Assert.assertTrue (jsonObject.isJsonObject ()); Assert.assertTrue (jsonObject.get ("שם"). GetAsString (). שווה ("Baeldung")); Assert.assertTrue (jsonObject.get ("java"). GetAsBoolean () == true);

4. שימוש מג'ייסון

בגישה השנייה שלנו נראה כיצד ליצור גסון למשל ולהשתמש ב- מג'ייסון שיטה. שיטה זו מבטל את ערכת ה- JSON שצוינה חוּט לאובייקט מהמחלקה שצוינה:

T ציבורי מ- Json (String json, Class classOfT) זורק את JsonSyntaxException

בואו נראה כיצד נוכל להשתמש בשיטה זו לניתוח ה- JSON שלנו חוּט, עובר את JsonObject מחלקה כפרמטר השני:

מחרוזת json = "{\" name \ ": \" Baeldung \ ", \" java \ ": true}"; JsonObject convertObject = Gson חדש (). מאת Json (json, JsonObject.class); Assert.assertTrue (convertObject.isJsonObject ()); Assert.assertTrue (convertObject.get ("שם"). GetAsString (). שווה ("Baeldung")); Assert.assertTrue (convertObject.get ("java"). GetAsBoolean () == true);

5. מסקנה

במדריך בסיסי זה למדנו שתי דרכים שונות להשתמש בספריית Gson כדי להשיג JsonObject מתבנית JSON חוּט בג'אווה. כתוצאה מכך, עלינו להשתמש בזה שמתאים יותר לפעולות ה- JSON הביניים שלנו.

כרגיל, קוד המקור לדוגמאות אלה זמין ב- GitHub.


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