ג'קסון - מחרוזת מרשל ל- 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 שלי - זהו פרויקט מבוסס ליקוי חמה, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.