Mengenal Library Jackson untuk Parsing JSON di Java

Ichwan Sholihin
4 min readOct 16, 2023
Photo by Ferenc Almasi on Unsplash

Halo semua, pada artikel kali ini saya akan membahas salah satu library untuk parsing atau menguraikan kode JSON pada Java dengan Jackson. Namun sebelum kita bahas cara implementasi dari library Jackson, ada baiknya kita perdalami terlebih dahulu apa itu JSON beserta kegunaannya.

JSON adalah sebuah format data yang menggunakan teks untuk mentransmisikan data objek yang terdiri dari pasangan atribut-nilai. Data dalam format JSON disajikan sebagai kumpulan pasangan “kunci-nilai”, di mana setiap kunci adalah string dan nilainya bisa berupa string, angka, objek, array, atau nilai-nilai boolean atau null. JSON dikembangkan sebagai format data independen bahasa oleh Douglas Crockford pada awal 2000-an. Format ini telah menjadi standar de facto dalam pertukaran data di web dan pengembangan perangkat lunak modern.

Berikut adalah beberapa point kegunaan JSON dalam pengembangan perangkat lunak:
1. Pertukaran Data Antar Aplikasi (API): JSON digunakan secara luas sebagai format data dalam pertukaran informasi antar aplikasi dan sistem, terutama melalui API (Application Programming Interface). Hampir semua layanan web modern menggunakan JSON untuk mengirim dan menerima data, memungkinkan interoperabilitas yang mulus antara platform dan teknologi yang berbeda.

2. Penyimpanan dan Konfigurasi Data:JSON digunakan untuk menyimpan konfigurasi aplikasi dan data dalam berkas teks. Strukturnya yang bersahabat dan mudah dibaca menjadikannya pilihan yang baik untuk menyimpan pengaturan aplikasi, pengaturan pengguna, dan preferensi lainnya.

3. Pemrosesan dan Manipulasi Data di Sisi Klien (Front-end): Dalam pengembangan web, JSON digunakan untuk mentransfer data dari server ke aplikasi klien (biasanya di browser). Dengan JavaScript, data JSON dapat dengan mudah dimanipulasi di sisi klien, memungkinkan pengembang untuk memperbarui tampilan halaman web tanpa memuat ulang halaman secara keseluruhan (teknik yang dikenal sebagai AJAX).

4. Penyimpanan Data di Basis Data NoSQL: Beberapa basis data NoSQL, seperti MongoDB, menggunakan format JSON untuk menyimpan data. Ini memungkinkan penggunaan JSON secara langsung dalam penyimpanan dan pengambilan data dari basis data NoSQL.

5. Konfigurasi Pengembangan: JSON sering digunakan untuk menyimpan konfigurasi pengembangan (development configuration) dalam proyek perangkat lunak. Ini mencakup informasi seperti URL basis API, kunci API, pengaturan debug, dan parameter pengembangan lainnya.

6. Kemudahan Parsing dan Generate Data: JSON memiliki dukungan bawaan atau pustaka untuk parsing dan menghasilkan data dalam berbagai bahasa pemrograman. Ini memudahkan pengembang untuk mengonversi data JSON ke struktur data yang dapat digunakan dalam aplikasi, dan sebaliknya.

Di Java, ada beberapa library yang dapat membantu dalam parsing data JSON, dan salah satu yang paling populer adalah Jackson.

Jackson adalah sebuah library JSON untuk Java. Dikembangkan oleh FasterXML, Jackson memungkinkan pengguna untuk mengonversi objek Java menjadi format JSON dan sebaliknya. Jackson menyediakan dua mode operasi utama: streaming API, yang memungkinkan proses data JSON secara bertahap dan efisien, dan databinding, yang memungkinkan objek Java di-mapping langsung ke JSON dan sebaliknya. Pada artikel ini, kita akan membahas bagaimana cara mengimplementasikan Jackson databinding untuk mem-parsing JSON pada Java.

Implementasikan library Jackson pada apache maven:

 <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.14.2</version>
</dependency>

Untuk mengetahui versi terbaru dari Jackson databinding, lihat repository berikut https://github.com/FasterXML/jackson-databind.

Kita akan coba mengubah sebuah Object class di Java menjadi sebuah data dalam bentuk JSON. Pertama, buatlah sebuah instance class dengan nama Person.java yang didalamnya terdapat field id, nama, array list untuk field hobbies dan sebuah nested object dengan class Address.java . Tambahkan juga setter dan getter dari masing-masing field.

public class Person {

private String id;

private String name;

private List<String> hobbies;

private Address address;


public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public List<String> getHobbies() {
return hobbies;
}

public void setHobbies(List<String> hobbies) {
this.hobbies = hobbies;
}

public Address getAddress() {
return address;
}

public void setAddress(Address address) {
this.address = address;
}
}
public class Address {

private String street;

private String city;

public String getStreet() {
return street;
}

public void setStreet(String street) {
this.street = street;
}

public String getCity() {
return city;
}

public void setCity(String city) {
this.city = city;
}

}

Lalu implementasikan object agar dapat di parsing ke JSON menggunakan library Jackson.

@Test
void createJsonFromObject() throws JsonProcessingException {

ObjectMapper objectMapper = new ObjectMapper();

Person person = new Person();

person.setId("123A");
person.setName("Ichwan Sholihin");
person.setHobbies(List.of("Coding", "Reading", "Travelling"));

Address address = new Address();
address.setStreet("Rajawali");
address.setCity("Bandar Lampung");
person.setAddress(address);

String value = objectMapper.writeValueAsString(person);

Assertions.assertNotNull(person);

System.out.println(value);
}

Method diatas bertujuan untuk mengonversi objek dari kelas Person menjadi format JSON menggunakan ObjectMapper dari Jackson library. Pertama, objek ObjectMapper dibuat. ObjectMapper adalah kelas dari Jackson library yang memungkinkan untuk mengonversi objek Java menjadi format JSON dan sebaliknya. Kemudian, objek Person dibuat dan diinisialisasi dengan nilai-nilai tertentu untuk atributnya seperti id, nama, dan hobi. Selain itu, objek Address juga dibuat dan diinisialisasi dengan nilai-nilai untuk atributnya seperti nama jalan dan nama kota. Objek Address kemudian ditetapkan sebagai alamat dari objek Person.

Setelah objek Person telah diisi dengan data, method writeValueAsString dari objek ObjectMapper digunakan untuk mengonversi objek Person tersebut menjadi format JSON dalam bentuk string. Hasil konversi disimpan dalam variabel value.

Kode diatas adalah contoh bagaimana menggunakan Jackson library untuk mengonversi objek Java ke format JSON dalam konteks pengujian. Dengan menggunakan metode serupa, pengembang dapat memastikan bahwa objek dalam aplikasi mereka dapat dengan benar diubah ke format JSON dan sebaliknya, yang penting untuk pertukaran data yang efisien dan akurat dalam pengembangan perangkat lunak.

--

--