java - 将 json 数组反序列化为列表并保留列表中 json 的数组顺序

标签 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():{"FirstName","LastName","UserName"}
  • 实际 getColumnNames():{"UserName","FirstName","LastName"}

我是 Jackson 映射的新手,因此非常感谢您的帮助。

最佳答案

Jackson 映射器填充 ArrayList 维护 JSON 的顺序。如果您想要不同的顺序,可以使用注释 @JsonPropertyOrder。

( https://fasterxml.github.io/jackson-annotations/javadoc/2.8/com/fasterxml/jackson/annotation/JsonPropertyOrder.html )

关于java - 将 json 数组反序列化为列表并保留列表中 json 的数组顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22623126/

相关文章:

java - 如何从 Java 高效地将 For 循环(700,000 行)内容写入文件?

java - 如何使用 JFileChooser.showOpenDialog 打开特定文件?

c# - 如何反序列化 JSON 中名为 "default"的 JSON 字段? C#

c# - 将 JSON 字符串转换为复杂 JSON 字符串的 C# 对象

go - 解码在根级别没有键的元组

队列集合的 Java 数据结构

java获取给定月份和给定年份的第一个日期和最后一个日期

spring - Spring Boot 未使用 Jackson Kotlin 插件

java - 使用 Jackson 2.2 进行 JSON 处理

java - 自定义 Jackson 解串器获取当前字段类的访问权限