ג'קסון - מחרוזת מרשל ל- JsonNode
1. סקירה כללית
מדריך מהיר זה יראה כיצד השתמש בג'קסון 2 כדי להמיר מחרוזת JSON ל- JsonNode (com.fasterxml.jackson.databind.JsonNode).
אם אתה רוצה להעמיק וללמוד דברים מגניבים אחרים שאתה יכול לעשות עם ג'קסון 2 - המשך למדריכה הראשית של ג'קסון.
2. ניתוח מהיר
פשוט מאוד, כדי לנתח את מחרוזת JSON אנו זקוקים רק ל- ObjectMapper:
@ מבחן פומבי בטל כאשר ParsingJsonStringIntoJsonNode_thenCorrect () זורק JsonParseException, IOException {String jsonString = "{" k1 ":" v1 "," k2 ":" v2 "}"; ממפה ObjectMapper = ObjectMapper חדש (); JsonNode actualObj = mapper.readTree (jsonString); assertNotNull (actualObj); }
3. ניתוח ברמה נמוכה
אם מסיבה כלשהי אתה צריך לרדת נמוך יותר מזה, הדוגמה הבאה חושפת את JsonParser אחראי על הניתוח בפועל של המחרוזת:
@ מבחן חלל ציבורי givenUsingLowLevelApi_whenParsingJsonStringIntoJsonNode_thenCorrect () זורק JsonParseException, IOException {String jsonString = "{" k1 ":" v1 "," k2 ":" v2 "}"; ממפה ObjectMapper = ObjectMapper חדש (); מפעל JsonFactory = mapper.getFactory (); מנתח JsonParser = factory.createParser (jsonString); JsonNode actualObj = mapper.readTree (מנתח); assertNotNull (actualObj); }
4. באמצעות JsonNode
לאחר ניתוח ה- JSON לאובייקט JsonNode, אנו יכולים לעבוד עם דגם העץ של ג'קסון JSON:
@Test הציבור בטל שניתןTheJsonNode_whenRetrievingDataFromId_thenCorrect () זורק JsonParseException, IOException {String jsonString = "{" k1 ":" v1 "," k2 ":" v2 "}"; ממפה ObjectMapper = ObjectMapper חדש (); JsonNode actualObj = mapper.readTree (jsonString); // כאשר JsonNode jsonNode1 = actualObj.get ("k1"); assertThat (jsonNode1.textValue (), equalTo ("v1")); }
5. מסקנה
מאמר זה מודגם כיצד לנתח את מיתרי JSON בג'קסון JsonNode דֶגֶם כדי לאפשר עיבוד מובנה של אובייקט JSON.
יישום כל הדוגמאות וקטעי הקוד ניתן למצוא בפרויקט github שלי - זהו פרויקט מבוסס ליקוי חמה, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.