Jackson - Marshall String ke JsonNode

1. Ikhtisar

Tutorial singkat ini akan menunjukkan cara menggunakan Jackson 2 untuk mengonversi String JSON menjadi JsonNode ( com.fasterxml.jackson.databind.JsonNode ).

Jika Anda ingin menggali lebih dalam dan mempelajari hal-hal keren lainnya yang dapat Anda lakukan dengan Jackson 2 - lanjutkan ke tutorial utama Jackson.

2. Parsing Cepat

Sederhananya, untuk mengurai String JSON kita hanya membutuhkan ObjectMapper :

@Test public void whenParsingJsonStringIntoJsonNode_thenCorrect() throws JsonParseException, IOException { String jsonString = "{"k1":"v1","k2":"v2"}"; ObjectMapper mapper = new ObjectMapper(); JsonNode actualObj = mapper.readTree(jsonString); assertNotNull(actualObj); }

3. Parsing Tingkat Rendah

Jika, karena alasan tertentu, Anda perlu menurunkan level dari itu, contoh berikut memperlihatkan JsonParser yang bertanggung jawab dengan penguraian String yang sebenarnya:

@Test public void givenUsingLowLevelApi_whenParsingJsonStringIntoJsonNode_thenCorrect() throws JsonParseException, IOException { String jsonString = "{"k1":"v1","k2":"v2"}"; ObjectMapper mapper = new ObjectMapper(); JsonFactory factory = mapper.getFactory(); JsonParser parser = factory.createParser(jsonString); JsonNode actualObj = mapper.readTree(parser); assertNotNull(actualObj); }

4. Menggunakan JsonNode

Setelah JSON diurai menjadi Objek JsonNode, kita dapat bekerja dengan Model Pohon Jackson JSON :

@Test public void givenTheJsonNode_whenRetrievingDataFromId_thenCorrect() throws JsonParseException, IOException { String jsonString = "{"k1":"v1","k2":"v2"}"; ObjectMapper mapper = new ObjectMapper(); JsonNode actualObj = mapper.readTree(jsonString); // When JsonNode jsonNode1 = actualObj.get("k1"); assertThat(jsonNode1.textValue(), equalTo("v1")); }

5. Kesimpulan

Artikel ini mengilustrasikan cara mengurai JSON Strings ke dalam model Jackson JsonNode untuk mengaktifkan pemrosesan terstruktur pada Objek JSON.

Penerapan semua contoh dan cuplikan kode ini dapat ditemukan di proyek github saya - ini adalah proyek berbasis Eclipse, jadi semestinya mudah untuk mengimpor dan menjalankan apa adanya.