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

Tukar POJO kepada JSON secara automatik menggunakan Jackson

王林
王林ke hadapan
2024-02-09 12:24:19620semak imbas

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);

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;
}

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}
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));
  }
}

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:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam