Rumah > Java > Tukar POJO kepada JSON secara automatik menggunakan Jackson

Tukar POJO kepada JSON secara automatik menggunakan Jackson

王林
Lepaskan: 2024-02-09 12:24:19
ke hadapan
763 orang telah melayarinya

Dalam pembangunan web moden, interaksi data hadapan dan belakang adalah pautan yang sangat penting. Dalam pembangunan Java, menukar objek POJO kepada data format JSON adalah keperluan biasa. Untuk memudahkan proses pembangunan, Jackson telah menjadi penyelesaian biasa. Jackson ialah perpustakaan Java berkuasa yang menyediakan penukaran automatik objek POJO ke dalam format JSON. Artikel ini akan menerangkan cara menggunakan Jackson untuk mencapai matlamat ini. Mari lihat panduan terperinci yang disediakan oleh editor PHP Yuzai untuk anda!

Kandungan soalan

Saya harap saya boleh melakukan ini:

system.out.printf("my obj: %s\n", myobject);
Salin selepas log masuk

Dan biarkan ia menjana json. Penyelesaian terbaik saya setakat ini ialah melakukan ini:

@Override
public String toString() {
    ObjectMapper mapper = new ObjectMapper();
    String retVal = null;
    try {
        retVal = mapper.writeValueAsString(this);
    }
    catch (JsonProcessingException ignored) {
    }
    return retVal;
}
Salin selepas log masuk

Ini memang berkesan, tetapi ia menjengkelkan apabila perlu melakukannya pada setiap pojo saya. Adakah terdapat anotasi yang boleh saya gunakan, atau cara lain untuk mengautomasikan ini. Saya menggunakan jackson dan projek lombok.

Saya cuba melaksanakannya hanya dalam kelas asas tetapi ia tidak akan berfungsi dalam subkelas. Jika saya melaksanakannya sepanjang rantaian ia berfungsi.

Penyelesaian

Jika anda mempunyai kelas warisan yang kompleks, anda harus mengalih keluar semua @tostring@data (其中包含 @tostring )或子类的 tostring ​​sebarang penggantian.

Berikut adalah contoh semua sifat yang digunakan dalam kaedah tostostostostostostring:

my obj: {"superproperty":"super","name":"abc","number":15,"gender":true}
Salin selepas log masuk
public abstract class BaseObject {
  @Override
  public String toString() {
    ObjectMapper mapper = new ObjectMapper();
    String retVal = null;
    try {
      retVal = mapper.writeValueAsString(this);
    } catch (JsonProcessingException ignored) {
    }
    return retVal;
  }

  @Setter
  @Getter
  @AllArgsConstructor
  public static class ChildObject extends BaseObject {
    private String superProperty;
  }

  @Setter
  @Getter
  public static class ChildObject1 extends ChildObject {
    private String name;
    private int number;
    private boolean gender;

    public ChildObject1(String superProperty, String name, int number, boolean gender) {
      super(superProperty);
      this.name = name;
      this.number = number;
      this.gender = gender;
    }
  }

  public static void main(String[] args) {
    System.out.printf("My obj: %s\n", new ChildObject1("super","abc", 15, true));
  }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Tukar POJO kepada JSON secara automatik menggunakan Jackson. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan