【问题标题】:mapping JSON to java POJO (jackson)将 JSON 映射到 java POJO (jackson)
【发布时间】:2019-11-08 09:20:15
【问题描述】:

我使用 JAVA jackson 将 JSON 映射到 JAVA pojo 对象,我的 JSON 文件是:

[
  [
    {
      "name": "tetragrammatonList_stocks_headerColumn_amountStoreOther",
      "id": "amountStoreOther"
    },
    {
      "name": "tetragrammatonList_stocks_headerColumn_article.articleSubGroup.name",
      "id": "article.articleSubGroup.name"
    },
    .....
    {
      "name": "tetragrammatonList_stocks_headerColumn_article.producer.name",
      "id": "article.producer.name"
    }
  ],
  [
    {
      "name": "tetragrammatonList_stocks_headerColumn_articleEANs",
      "id": "articleEANs"
    },
    {
      "name": "tetragrammatonList_stocks_headerColumn_article.plu",
      "id": "article.plu"
    },
    {
      "name": "tetragrammatonList_stocks_headerColumn_article.name",
      "id": "article.name"
    },
    .....
    {
      "name": "tetragrammatonList_stocks_headerColumn_article.producer.name",
      "id": "article.producer.name"
    }
  ]
]

readValue 之后我收到此错误消息:

无法从 START_ARRAY 令牌中反序列化 .... 的实例

我的 POJO 课程:

public class A
    {
        private String name;
        private String id;
        +get/set methods
    }

    public class B
    {
        private String name;
        private String id;
        +get/set methods
    }

    public class Root
    {
        private List<A> a;
        private List<B> b;
        +get/set methods
    }

Root root = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).readValue(jsonString, Root.class);

请问,这种 JSON 格式的正确 java pojo 是什么?谢谢。

【问题讨论】:

  • 请在这里分享您的 POJO 课程
  • 添加了 JAVA POJO 对象。谢谢
  • 你有一个由两个列表组成的列表(数组)。还有你为什么要用2个完全相同的POJO类,一个就够了。

标签: java json jackson


【解决方案1】:
@Getter
@Setter
public class Root
    {
        private List<A> a;
    }
@Getter
@Setter
private class A
    {
        private String name;
        private String id;
    }
ObjectMapper mapper = new ObjectMapper();
List <Root> rt = mapper.readValue(json, List.class);

试试这个

【讨论】:

  • 无法从 START_ARRAY 令牌中反序列化 sk.atlantissoftware.tetragrammaton.core.servlet.controllers.TetragrammatonController$Root 的实例
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-10
  • 2015-07-01
  • 2017-02-24
相关资源
最近更新 更多