כיום, מקובל מאוד לקבל נתונים פנימה מחרוזת JSON פורמט במקום XML. כאשר אנו עוסקים ב-JSON String ב-Java, הוא אינו ממיר את ה- מחרוזת JSON ל אובייקט JSON . אבל השתמש ב מחרוזת JSON תמיד זו לא אפשרות טובה כי קשה להתמודד איתה. בשל השינוי והביקוש של הטכנולוגיה, אנחנו צריכים המרת מחרוזת JSON לאובייקט JSON לאחזר ערכים. כדי לפתור בעיה זו יש כמה ספריות קוד פתוח שמאפשרות לנו המרת מחרוזת JSON לאובייקט JSON. בחלק זה הסברנו כיצד להמיר מחרוזת JSON לאובייקט JSON בפירוט עם דוגמה. לפני שנעבור לנושא הראשי, בואו נסתכל על פורמט JSON.
jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] }
פורמט ה-JSON הנ'ל מכיל שש תכונות שמתוכם השתיים הראשונות הן מחרוזות, שלושתן הבאות הן מספריות ולבסוף מערך JSON.
המר מחרוזת JSON לאובייקט JSON
ישנן שלוש הספריות הבאות המשמשות להמרת String ל-JSON Object ב-Java:
- שימוש בספריית Gson
- שימוש ב-JSON-Simple Library
- ספריית ג'קסון
שימוש בספריית Gson
Gson הוא קוד פתוח ועשיר Java הספרייה שסופקה על ידי Google. הוא משמש להמרת JSON String ל-JSON Object שוות ו-JSON Object ל-JSON String. שורת הקוד הבאה משמשת להמרת JSON String ל-JSON Object.
Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class)
אנו יכולים גם להמיר JSON Object ל-JSON String על ידי שימוש ב- toJson() שיטה.
String str = g.toJson(p);
שימוש ב-JSON-Simple Library
זוהי עוד ספריית Java בקוד פתוח המשמשת להמרת מחרוזת JSON לאובייקט JSON. היתרון של ספריית JSON-Simple הוא בגודלה הקטן. זה מושלם איפה שסביבת אילוצי הזיכרון חשובה. שימו לב שהוא תואם גם ל-JDK 1.2. זה אומר שאנחנו יכולים להשתמש בו עם פרויקט מדור קודם שאינו ב-Java 5. אנו משתמשים בהצהרות הבאות כדי להמיר את מחרוזת JSON ל-JSON Object.
JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse);
שימוש בספריית ג'קסון
ספריית ג'קסון היא ספריית Java יעילה ונפוצה למיפוי אובייקטי Java ל-JSON ולהיפך. הוא עשיר בתכונות, מהיר בביצועים וגם תומך בסטרימינג. הזרם יכול לנתח פלט JSON גדול משירותי אינטרנט מבלי לטעון אותו במלואו בזיכרון. ההצהרה הבאה ממירה מחרוזת JSON המייצגת תלמיד לכיתת Java המייצגת את התלמיד.
Student student = new ObjectMapper().readValue(jsonString, Student.class);
החיסרון של ספריית ג'קסון הוא שהיא דורשת לפחות JDK 1.5. לכן, אם בגרסה ישנה יותר עסקינן, היא לא תתאים לשם. חסרון נוסף של ספריית ג'קסון הוא שהיא אינה תומכת ב-J2ME.
דוגמה להמרת אובייקט JSON ל-JSON
בתוכנית הבאה, המרנו מחרוזת JSON לאובייקט JSON.
JsonStringToJsonObjectExample.java
import org.json.JSONObject; import org.json.JSONArray; public class JsonStringToJsonObjectExample { public static void main(String args[]) { String str = '[{'No':'17','Name':'Andrew'},{'No':'18','Name':'Peter'}, {'No':'19','Name':'Tom'}]'; JSONArray array = new JSONArray(str); for(int i=0; i <array.length(); i++) { jsonobject object="array.getJSONObject(i);" system.out.println(object.getstring('no')); system.out.println(object.getstring('name')); } < pre> <p> <strong>Output:</strong> </p> <pre> 17 Andrew 18 Peter 19 Tom </pre> <p>Let's see another example.</p> <p> <strong>JsonStringToJsonObjectExample2.java</strong> </p> <pre> import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); System.out.println(technology); } } </pre> <p> <strong>Output:</strong> </p> <pre> Sam Smith Python </pre> <hr></array.length();>
בואו נראה דוגמה נוספת.
JsonStringToJsonObjectExample2.java
ערימות java
import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); System.out.println(technology); } }
תְפוּקָה:
Sam Smith Python