Rumah > Java > javaTutorial > Mengapa Saya Mendapat Ralat \'Gagal Melantun untuk Menaip\' Semasa Memetakan Firebase JSON ke Objek Java Menggunakan Jackson?

Mengapa Saya Mendapat Ralat \'Gagal Melantun untuk Menaip\' Semasa Memetakan Firebase JSON ke Objek Java Menggunakan Jackson?

Susan Sarandon
Lepaskan: 2024-11-26 12:31:10
asal
155 orang telah melayarinya

Why Am I Getting a

Mengapa Saya Mendapat Ralat "Gagal Melantun untuk Menaip" Semasa Menukar Firebase JSON kepada Objek Java?

Pengenalan

Ralat ini berlaku semasa penukaran Firebase JSON kepada objek Java menggunakan perpustakaan Jackson. Ini menunjukkan bahawa Jackson tidak dapat memetakan sifat JSON ke kelas Java anda.

Penyelesaian

Pastikan Sifat Kelas Java Padan dengan Sifat JSON

Pertama, pastikan sifat kelas Java anda betul-betul sepadan dengan nama sifat JSON, termasuk huruf besar. Selain itu, pengambil awam harus wujud untuk setiap sifat.

Gunakan @JsonIgnoreProperties Anotasi

Jika kelas Java anda tidak menyertakan pemetaan untuk semua sifat JSON, anda boleh menggunakan anotasi @JsonIgnoreProperties untuk mengabaikan sifat tertentu semasa penukaran.

Leverage @JsonIgnore Anotasi

Untuk sifat yang ingin anda sertakan dalam kelas Java anda tetapi tidak bersiri kembali kepada JSON, anda boleh menggunakan anotasi @JsonIgnore untuk menunjukkan ia harus diabaikan.

Contoh

Pertimbangkan struktur Firebase JSON berikut:

{
  "users": {
    "-Jx5vuRqItEF-7kAgVWy": {
      "handle": "puf",
      "name": "Frank van Puffelen",
      "soId": 209103
    }
  }
}
Salin selepas log masuk

Untuk menukar JSON ini kepada objek Java, takrifkan kelas berikut:

private static class User {
  private String handle;
  private String name;

  public String getHandle() { return handle; }
  public String getName() { return name; }
}
Salin selepas log masuk

Apabila menambahkan anotasi @JsonIgnoreProperties untuk mengabaikan sifat soId, kod tersebut menjadi:

@JsonIgnoreProperties({"soId"})
private static class User {
  private String handle;
  private String name;

  public String getHandle() { return handle; }
  public String getName() { return name; }
}
Salin selepas log masuk

Atau, untuk mengabaikan sepenuhnya sebarang sifat yang tidak sepadan, gunakan anotasi berikut:

@JsonIgnoreProperties(ignoreUnknown = true)
private static class User {
  ...
}
Salin selepas log masuk

Ini membolehkan Jackson mengabaikan sifat dalam JSON yang tidak mempunyai sifat kelas Java yang sepadan.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Gagal Melantun untuk Menaip\' Semasa Memetakan Firebase JSON ke Objek Java Menggunakan Jackson?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan