ฉันมี json ต่อไปนี้ที่แมปกับ POJO โดยใช้ Jackson mapper ฉันจะรักษาลำดับของคอลัมน์อาร์เรย์จาก json ในระหว่างการดีซีเรียลไลซ์ได้อย่างไร ฉันควรใช้คำอธิบายประกอบแบบใด
เจสัน:
{
"columnNames": [
"FirstName",
"LastName",
"UserName"
],
"values": [
[
"John",
"Smith",
"jsmith"
],
[
"Tim",
"Cook",
"tcook"
]
]
}
โปโจ:
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(): {"FirstName","LastName","UserName"}
- getColumnNames(): {"ชื่อผู้ใช้", "FirstName", "นามสกุล"}
ฉันยังใหม่กับการทำแผนที่ Jackson ดังนั้นจึงยินดีเป็นอย่างยิ่งสำหรับความช่วยเหลือ
readValue
ก็มีผลข้างเคียงที่ไม่อยู่ในลำดับเสมอไป เห็นได้ชัดว่าคุณต้องการให้มันคงอยู่ตามลำดับ แต่นอกเหนือจากการเขียนดีซีเรียลไลเซอร์แบบกำหนดเองแล้ว ฉันไม่คิดว่าจะมีวิธีเอาชนะสิ่งนี้ได้ ฉันใช้ไลบรารี GSON สำหรับการดีซีเรียลไลเซอร์ และการเขียนดีซีเรียลไลเซอร์ก็ค่อนข้างง่าย ไม่แน่ใจจริงๆว่าคุณมีตัวเลือกในการลองใช้ไลบรารี่อื่นหรือไม่ (ขึ้นอยู่กับจำนวนโค้ดที่คุณเขียน) - person Aarowaim   schedule 25.03.2014Jackson
ทำการดีซีเรียลไลซ์มันตามที่คุณคาดหวัง คุณใช้ดีซีเรียลไลเซอร์แบบกำหนดเองหรืออะไรทำนองนั้นหรือไม่? บางทีคุณอาจบังเอิญเปลี่ยนลำดับในรายการนี้หลังจากการดีซีเรียลไลซ์ใช่ไหม - person Michał Ziober   schedule 25.03.2014