Belajar Java : Cara Melakukan Convert XML ke Java - Java Community

Belajar Java : Cara Melakukan Convert XML ke Java

Jika kamu seorang programmer pemula yang baru mulai mengeksplorasi konversi data antara objek Java dan XML, maka jackson-dataformat-xml adalah library yang wajib kamu kenal. Artikel ini akan membahas secara detail apa itu jackson-dataformat-xml, cara menggunakannya, dan mengapa ini sangat berguna dalam proyek Java.

Apa Itu jackson-dataformat-xml?

jackson-dataformat-xml adalah salah satu modul dari Jackson, sebuah library populer untuk serialisasi dan deserialisasi data dalam Java. Modul ini khusus untuk mengonversi data antara objek Java dan XML. Dengan kata lain, jika kamu memiliki objek Java dan ingin menyimpannya sebagai XML, atau memiliki XML dan ingin mengubahnya menjadi objek Java, jackson-dataformat-xml adalah solusi yang tepat.

Mengapa jackson-dataformat-xml Penting?

  1. Kemudahan Penggunaan
  2. Jackson dikenal karena kemudahan penggunaannya, dan modul XML-nya tidak terkecuali. Kamu tidak perlu menulis banyak kode untuk melakukan konversi data.

  3. Fleksibilitas
  4. Dengan jackson-dataformat-xml, kamu dapat dengan mudah mengontrol bagaimana objek Java dan XML dihubungkan. Kamu bisa menentukan nama elemen XML, struktur, dan lainnya dengan menggunakan anotasi.

  5. Integrasi yang Baik
  6. Jackson adalah bagian dari ekosistem yang luas, sehingga mudah untuk mengintegrasikan XML dengan JSON atau format data lainnya jika diperlukan.

Contoh Cara Melakukan Convert XML ke Java

Pertama-tama, kamu perlu menambahkan dependency untuk jackson-dataformat-xml ke dalam proyek Maven-mu.

Dependency

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>2.17.2</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.5.7</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.34</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

Jika kalian menggunakan Gradle

    implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.2'

Class Produk

Sekarang, kita akan melihat bagaimana cara menggunakan jackson-dataformat-xml dengan contoh sederhana. Misalnya, kamu punya Class Produk seperti ini:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@JacksonXmlRootElement(localName = "produk")
public class Produk {
    @JacksonXmlProperty(localName = "id")
    private Long id;

    @JacksonXmlProperty(localName = "kode_produk")
    private String kode;

    @JacksonXmlProperty(localName = "nama_produk")
    private String nama;

    @JacksonXmlProperty(localName = "harga_produk")
    private Long harga;
}
Penjelasan

  • @JacksonXmlRootElement digunakan untuk menentukan elemen root dalam output XML.
  • @JacksonXmlProperty digunakan untuk menentukan nama elemen XML yang terkait dengan field

Method convertXmlToJava

public Produk convertXmlToJava(String xml) throws IOException {
    XmlMapper mapper = new XmlMapper();
    return mapper.readValue(new StringReader(xml), Produk.class);
}
Penjelasan

  • XmlMapper mapper = new XmlMapper(); Class dari Jackson yang digunakan khusus untuk memproses XML.
  • mapper.readValue(new StringReader(xml), Produk.class); Mengambil input berupa string XML, kemudian menggunakan XmlMapper untuk membaca XML tersebut dan mengonversinya menjadi objek Produk.

    String xml = """
    <?xml version="1.0" encoding='UTF-8'?>
    <produk>
    <id>1</id>
    <kode_produk>P-001</kode_produk>
    <nama_produk>Laptop</nama_produk>
    <harga_produk>5000000</harga_produk>
    </produk>
    """;
    convertXmlToJava(xml);
    Produk(id=1, kode=P-001, nama=Laptop, harga=5000000)

Method convertXmlToJava

public String convertJavaToXml(Produk produk) throws JsonProcessingException {
    XmlMapper mapper = new XmlMapper();
    mapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
    return mapper.writeValueAsString(produk);
}
Penjelasan

  • mapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true); Mengonfigurasi XmlMapper agar menulis deklarasi XML (<?xml version="1.0" encoding="UTF-8" ?>) di awal output.
  • mapper.writeValueAsString(produk); Mengonversi objek Produk menjadi string XML.

Produk produk = Produk.builder()
    .id(1L)
    .kode("P-001")
    .nama("Laptop")
    .harga(9_000_000L)
    .build();
    convertJavaToXml(produk);
<?xml version="1.0" encoding='UTF-8'?>
<produk>
    <id>1</id>
    <kode_produk>P-001</kode_produk>
    <nama_produk>Laptop</nama_produk>
    <harga_produk>5000000</harga_produk>
</produk>

Kesimpulan

Dengan jackson-dataformat-xml, kalian bisa dengan mudah melakukan konversi data antara objek Java dan XML, sebuah keterampilan yang sangat berguna dalam pengembangan aplikasi. Modul ini menawarkan cara yang efisien untuk mengelola data XML dalam proyek Java, dan dengan beberapa langkah sederhana, kalian bisa mulai menggunakannya dalam kode kalian.

Subscribe to receive free email updates:

0 Response to "Belajar Java : Cara Melakukan Convert XML ke Java"

Posting Komentar