将json数组反序列化到列表中并从列表中的json保留数组顺序

时间:2014-03-25 00:14:13

标签: java jackson json-deserialization

我有以下使用Jackson映射器映射到POJO的json。如何在反序列化期间保留json中数组列的顺序?我应该使用什么注释?

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():{&#34; FirstName&#34;,&#34; LastName&#34;,&#34; UserName&#34;}
  • 实际getColumnNames():{&#34; UserName&#34;,&#34; FirstName&#34;,&#34; LastName&#34;}

我是杰克逊地图的新手,所以感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

杰克逊映射器填充ArrayList,保持JSON的顺序。如果您想要不同的订单,可以使用注释@JsonPropertyOrder。

http://fasterxml.github.io/jackson-annotations/javadoc/2.3.0/com/fasterxml/jackson/annotation/JsonPropertyOrder.html