У меня есть следующий json, который сопоставляется с POJO с помощью картографа Jackson. Как сохранить порядок столбцов массива из json во время десериализации? Какую аннотацию следует использовать?
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(): {"UserName","FirstName","LastName"}
Я новичок в отображении Джексона, поэтому любая помощь приветствуется.
readValue
имеет побочный эффект, заключающийся в том, что он не всегда остается в порядке. Очевидно, вам нужно, чтобы они оставались в порядке, но, кроме написания собственного десериализатора, я не думаю, что есть способ преодолеть это. Я использовал библиотеку GSON для десериализации, и писать десериализаторы было довольно легко. Не совсем уверен, есть ли у вас возможность попробовать другую библиотеку (это зависит от того, сколько кода вы написали) - person Aarowaim   schedule 25.03.2014Jackson
десериализовал его, как вы ожидаете. Используете ли вы какой-либо пользовательский десериализатор или что-то в этом роде? Может быть, вы случайно меняете порядок в этом списке после десериализации, не так ли? - person Michał Ziober   schedule 25.03.2014