Saya menggunakan jackson 2.9.6
Saya memiliki objek yang ingin saya serialisasi dan Deserialisasi. Ini kelas Post
Post.java
public class Post extends GenericJson {
private Long id;
private String name;
private int count;
private List<Comment> commentList;
// Getter and setter
}
public class Comment extends GenericJson{
private Long id;
private String text;
private int count;
// Getter and setter
}
Data JSON
{
"id" : 123,
"name" : "azeem",
"count" : 1,
"commentList" : [
{
"id" : 312,
"text" : "simple comment",
"count" : 3
},
{
"id" : 31221231231231,
"text" : "simple comment 2",
"count" : 1
}
]
},
"id" : 123127877186786,
"name" : "arfan",
"count" : 5,
"commentList" : [
{
"id" : 312,
"text" : "simple comment",
"count" : 3
},
{
"id" : 31221231231231,
"text" : "simple comment 2",
"count" : 1
}
]
}
Saya menggunakan ObjectMapper
untuk membaca dan menulis, seperti ini.
Untuk Menulis
objectMapper.writeValue(fileDir, postObject);
Untuk Dibaca
objectMapper.readValue(savedFileDir, Post.class); // Error can't cast int to long
Seperti yang Anda lihat, ada kesalahan tidak dapat melakukan cast ke postingan panjang['id'] dan hal yang sama terjadi di commentList
ini karena di Json Data id
pertama adalah 123 Jadi jackson
anggap saja sebagai int
dan coba simpan di Long id
Saya melihat jawaban di StackOverFlow yang menggunakan DeserializationFeature.USE_LONG_FOR_INTS
Namun saya tidak dapat menggunakannya karena ada properti lain count
yang saya perlukan di int
.
Jika saya menggunakan DeserializationFeature.USE_LONG_FOR_INTS
itu menunjukkan kesalahan yang Panjang tidak dapat ditransmisikan ke int posting['count'] dan sama dengan commentList
Saya ingin bertanya apakah ada cara saya dapat mengonversi properti tertentu ke tipe primitif tertentu. Misalnya dalam hal ini saya ingin properti id
selalu di Long
di Post
dan Comment
. Lainnya semua properti baik-baik saja.
Bisakah Anda memberi tahu saya bagaimana saya bisa melakukan itu.
Perbarui
Kelas Post
dan Comment
dibuat secara otomatis dan tidak dapat membuat perubahan apa pun pada file ini. Sebenarnya saya menggunakan Google cloud endpoints v2 file ini dihasilkan oleh cloud endpoint. Titik akhir cloud menggunakan jackson
lib yang sama untuk mengonversi data json menjadi objek kelas ini tetapi saya tidak tahu mereka melakukannya.
id
harus berupa tipe pembungkus? Bisakah Anda mengubahnya kelong
primitif? - person ernest_k   schedule 31.07.2018