Saya memiliki json berikut yang dipetakan ke POJO menggunakan Jackson mapper. Bagaimana cara mempertahankan urutan kolom array dari json selama deserialisasi? Anotasi apa yang harus saya gunakan?
JSON:
{
"columnNames": [
"FirstName",
"LastName",
"UserName"
],
"values": [
[
"John",
"Smith",
"jsmith"
],
[
"Tim",
"Cook",
"tcook"
]
]
}
POJO:
public class Data implements Serializable {
private List<String> columnNames = new ArrayList<String>();
private List<ArrayList<String>> values = new ArrayList<ArrayList<String>>();
public List<String> getColumnNames() {
return columnNames;
}
public void setColumnNames(List<String> columnNames) {
this.columnNames = columnNames;
}
public List<ArrayList<String>> getValues() {
return values;
}
public void setValues(List<ArrayList<String>> values) {
this.values = values;
}
}
- GetColumnNames() yang diharapkan: {"FirstName","LastName","UserName"}
- GetColumnNames() yang sebenarnya: {"UserName","FirstName","LastName"}
Saya baru mengenal pemetaan Jackson jadi bantuan apa pun sangat kami hargai.
readValue
memiliki efek samping yaitu tidak selalu teratur. Jelas Anda memang membutuhkannya agar tetap teratur, tetapi selain menulis deserializer khusus, menurut saya tidak ada cara untuk mengatasinya. Saya menggunakan perpustakaan GSON untuk deserialisasi dan cukup mudah untuk menulis deserializer. Tidak begitu yakin apakah Anda memiliki opsi untuk mencoba perpustakaan lain (tergantung berapa banyak kode yang Anda tulis) - person Aarowaim   schedule 25.03.2014Jackson
membatalkan serialisasinya seperti yang Anda harapkan. Apakah Anda menggunakan deserializer khusus atau semacamnya? Mungkin Anda secara tidak sengaja mengubah urutan daftar ini setelah melakukan deserialisasi, bukan? - person Michał Ziober   schedule 25.03.2014