Rumah > Java > javaTutorial > Mengapakah saya mendapat ralat \'Gagal melantun untuk menaip\' semasa menukarkan Firebase JSON kepada objek Java?

Mengapakah saya mendapat ralat \'Gagal melantun untuk menaip\' semasa menukarkan Firebase JSON kepada objek Java?

Patricia Arquette
Lepaskan: 2024-11-17 19:44:01
asal
292 orang telah melayarinya

Why do I get a

Mengapa anda menghadapi "Gagal melantun untuk menaip" semasa menukar JSON daripada Firebase kepada objek Java?

Firebase menggunakan Jackson untuk memudahkan siri objek Java ke dalam JSON dan penyahserikatannya kembali ke objek Java. Tutorial ini meneroka pelbagai pendekatan untuk menggunakan Jackson dengan Firebase.

Memuatkan Pengguna Lengkap

Untuk memuatkan pengguna daripada Firebase ke dalam Android, seseorang boleh mencipta kelas Java yang mencerminkan struktur JSON :

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

  // getters and toString methods
}
Salin selepas log masuk

Kelas ini boleh digunakan dengan a pendengar:

Firebase ref = new Firebase("https://stackoverflow.firebaseio.com/32108969/users");

ref.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot usersSnapshot) {
    for (DataSnapshot userSnapshot : usersSnapshot.getChildren()) {
      User user = userSnapshot.getValue(User.class);
      System.out.println(user.toString());
    }
  }

  @Override
  public void onCancelled(FirebaseError firebaseError) { }
});
Salin selepas log masuk

Memuatkan Separa Pengguna

Jika hanya sifat pengguna tertentu yang diminati, seseorang boleh menghilangkan sifat yang tidak diingini daripada kelas Java. Walau bagaimanapun, ini mungkin menyebabkan pengecualian "jenis gagal untuk menyahpantulkan" disebabkan ketidakupayaan Jackson untuk mengecam harta yang ditinggalkan.

Untuk menyelesaikan masalah ini, anotasi @JsonIgnoreProperties boleh digunakan untuk mengarahkan Jackson mengabaikan sifat tertentu:

@JsonIgnoreProperties({ "stackId" })
private static class User {
  String handle;
  String name;
}
Salin selepas log masuk

Sebagai alternatif, @JsonIgnoreProperties(ignoreUnknown=true) boleh digunakan untuk mengabaikan semua sifat tidak diketahui.

Menyimpan Separa Pengguna

Kaedah kemudahan boleh ditambah pada kelas Java untuk meningkatkan kefungsiannya. Sebagai contoh, kaedah untuk mendapatkan nama paparan pengguna boleh ditambah:

private static class User {
  String handle;
  String name;

  @JsonIgnore
  public String getDisplayName() {
    return getName() + " (" + getHandle() + ")";
  }
}
Salin selepas log masuk

Apabila menyimpan pengguna ke Firebase, anotasi @JsonIgnore harus digunakan pada kaedah getDisplayName() untuk menghalang kemasukannya dalam JSON keluaran.

Atas ialah kandungan terperinci Mengapakah saya mendapat ralat \'Gagal melantun untuk menaip\' semasa menukarkan Firebase JSON kepada objek Java?. 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