JSON בג'אווה

ג'קסון טופ

רק הכרזתי על החדש למד אביב קורס, המתמקד ביסודות האביב 5 ומגף האביב 2:

>> בדוק את הקורס

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

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

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

  • ג'קסון
  • גסון
  • json-io
  • גנסון

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

2. פופולריות ונתונים בסיסיים

ראשית, נתחיל בכמה נתונים סטטיסטיים כ- proxy לפופולריות של כל ספרייה:

2.1. ג'קסון

  • שימוש ב- Maven: data-bind (2362), הליבה (1377)
  • כוכבי Github: 1457
  • גיתוב פורקס: 585

2.2. גסון

  • שימוש ב- Maven: 1588
  • Github Stars: 2079
  • גיתוב פורקס: 471

2.3. json-io

  • שימוש ב- Maven: 11
  • Github Stars: 129
  • גיתוב פורקס: 40

2.4. גנסון

  • שימוש ב- Maven: 8
  • כוכבי Github: 67
  • גיתוב פורקס: 15

3. ג'קסון

לאחר מכן, בואו נסתכל על הפופולרי ביותר מבין אלה - ג'קסון. ג'קסון היא ספריית ג'אווה רב-תכליתית לעיבוד נתוני JSON.

3.1. משאבים שימושיים

להלן מספר מקורות רשמיים לספרייה:

  • ויקי הרשמי של ג'קסון
  • ג'קסון בגית'וב

על באלדונג:

  • מדריך ג'קסון
  • ג'קסון דייט
  • ג'קסון ג'ונסון צפיות
  • מדריך להערות ג'קסון
  • יוצאי דופן של ג'קסון - בעיות ופתרונות
  • ג'קסון - החליט אילו שדות ייעשה סדר / עריק
  • ג'קסון - יחסים דו-כיווניים
  • ג'קסון - סדרת מותאם אישית
  • ג'קסון - Deserializer בהתאמה אישית

כתובות מעניינות אחרות:

  • ממשק ה- API לעיבוד ג'קסון JSON בהדרכת דוגמה לג'אווה
  • ג'קסון - ObjectMapper
  • ג'קסון 2 - המרת אובייקט Java אל / מ- JSON

3.2. תלות של Maven

כדי להשתמש בספרייה - הנה התלות של Maven להוסיף לתוך שלך pom.xml:

 com.fasterxml.jackson.core jackson-databind $ {jackson.version} 

שים לב שהגרסה האחרונה של ג'קסון כרגע היא 2.6.3.

3.3. דוגמה פשוטה עם ג'קסון

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

@ מבחן ציבורי בטל כאשרSerializeAndDeserializeUsingJackson_thenCorrect () זורק IOException {Foo foo = Foo חדש (1, "ראשון"); ממפה ObjectMapper = ObjectMapper חדש (); מחרוזת jsonStr = mapper.writeValueAsString (foo); תוצאת Foo = mapper.readValue (jsonStr, Foo.class); assertEquals (foo.getId (), result.getId ()); }

ציין זאת:

  • ObjectMapper.writeValueAsString () משמש לסידור מחרוזת אובייקט ל- JSON.
  • ObjectMapper.readValue () משמש לביטול עריכה מחדש של מחרוזת JSON לאובייקט Java.
  • פלט JSON לדוגמא:
{"id": 1, "name": "first"}

4. גסון

Gson היא ספריית Java JSON הבאה שנעמוד עליה.

4.1. משאבים שימושיים

להלן מספר מקורות רשמיים לספרייה:

  • גסון על גיתוב
  • מדריך למשתמש של Gson

על באלדונג:

  • ספר בישול סידורי Gson
  • ספר בישול של התנערות מגסון

כתובות מעניינות אחרות:

  • אסטרטגיית הרחקת Gson
  • Gson מותאם אישית Serializer / Deserializer
  • מדריך Java Gson + JSON עם דוגמאות

4.2. תלות של Maven

 com.google.code.gson gson $ {gson.version} 

שים לב שהגרסה האחרונה של Gson כרגע היא 2.4.

4.3. דוגמה פשוטה עם Gson

הנה דוגמה פשוטה להבהיר כיצד להשתמש ב- Gson לסידור / יישור סדר JSON:

@Test ציבורי בטל כאשרSerializeAndDeserializeUsingGson_thenCorrect () {Gson gson = Gson new (); Foo foo = Foo חדש (1, "ראשון"); מחרוזת jsonStr = gson.toJson (foo); תוצאת Foo = gson.fromJson (jsonStr, Foo.class); assertEquals (foo.getId (), result.getId ()); }

ציין זאת:

  • Gson.toJson () משמש לסידור אובייקט ל- JSON
  • Gson.fromJson () משמש לנטרול גודל של JSON ל- Java Object

5. Json-io

Json-io היא ספריית Java פשוטה לסידור / ערעור מחדש של JSON.

5.1. משאבים שימושיים

להלן מספר משאבים רשמיים לספריה:

  • json-io בקוד גוגל
  • json-io על Github

5.2. תלות של Maven

 com.cedarsoftware json-io $ {json-io.version} 

שים לב שהגרסה האחרונה של json-io כרגע היא 4.1.9.

5.3. דוגמה פשוטה עם json-io

עכשיו, בואו נסתכל על דוגמה פשוטה לשימוש ב- json-io:

@Test הציבור בטל כאשרSerializeAndDeserializeUsingJsonio_thenCorrect () {Foo foo = Foo new (1, "first"); מחרוזת jsonStr = JsonWriter.objectToJson (foo); תוצאת Foo = (Foo) JsonReader.jsonToJava (jsonStr); assertEquals (foo.getId (), result.getId ()); }

ציין זאת:

  • JsonWriter.objectToJson () משמש לסידור אובייקט ל- JSON.
  • JsonReader.jsonToJava () משמש לנטישה מחדש של Json ל- Java Object.
  • פלט JSON לדוגמא:
{"@type": "org.baeldung.Foo", "id": 1, "name": "first"}

6. גנסון

גנסון היא ספריית המרות של Java ו- Scala ל- JSON, המספקת איתור נתונים מלא והזרמה.

6.1. משאבים שימושיים

להלן מספר מקורות רשמיים לספרייה:

  • האתר הרשמי של גנסון
  • גנסון על גיתוב
  • מדריך למשתמש של גנסון
  • פורמט ג'נסון JSON למערכי בתים

6.2. תלות של Maven

 com.owlike genson $ {genson.version} 

שים לב שהגרסה האחרונה של גנסון כרגע היא 1.3.

6.3. דוגמה פשוטה עם גנסון

הנה דוגמה פשוטה לעבודה עם הספרייה:

@ מבחן ציבורי בטל כאשרSerializeAndDeserializeUsingGenson_thenCorrect () {Genson genson = Genson new (); Foo foo = Foo חדש (1, "ראשון"); מחרוזת jsonStr = genson.serialize (foo); תוצאת Foo = genson.deserialize (jsonStr, Foo.class); assertEquals (foo.getId (), result.getId ()); }

ציין זאת:

  • Genson.serialize () משמש לסידור אובייקט ל- JSON
  • Genson.desrialize () משמש לניתוק מחדש של JSON ל- Java Object

7. מסקנה

במאמר סקירה מהיר זה למדנו על ספריות עיבוד JSON הנפוצות ביותר בג'אווה.

תחתון ג'קסון

רק הכרזתי על החדש למד אביב קורס, המתמקד ביסודות האביב 5 ומגף האביב 2:

>> בדוק את הקורס