【问题标题】:How can I map a very complicated json data into object by jackson in spring boot?如何在spring boot中通过jackson将非常复杂的json数据映射到对象中?
【发布时间】:2016-10-07 04:28:37
【问题描述】:

在“某事”之前,我知道该怎么做。 而且我还想通过“某物”的索引来获取对象。 真的很难>_

{
  "ResultSet": {
    "0": {
      "Result": {
        "0": {something}
        "1": {something}
        "2": {something}
        .
        .
        .
        .
      }
}

现在我创建了这样的类:

结果集.java

@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class ResultSet {
    @JsonProperty("0")
    private Index index;
}

索引.java

@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class Index {
    @JsonProperty("Result")
    private Result result;
}

结果.java

@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class Result {
    @JsonProperty("0")
    private ItemIndex itemIndex;
}

【问题讨论】:

    标签: java json spring-boot jackson


    【解决方案1】:

    您的 JSON 看起来像是表格数据的通用序列化,例如SQL ResultSet,其中对象 "ResultSet" 的 "fields" 实际上是行号(从零开始),而对象 "Result" 的 "fields" `实际上是列号(从零开始)。

    对于这样的动态字段名称,使用 JSON 对象映射器,您可能应该只将数据映射到 Map 对象,其中字段名称成为映射键。

    class ResultSet {
        @JsonProperty("ResultSet")
        Map<String, Result> resultMap;
    }
    
    class Result {
        @JsonProperty("Result")
        Map<String, Something> somethingMap;
    }
    

    【讨论】:

    • 非常感谢。非常棒。但是我想用RestTemplate获取json,请问怎么处理?
    猜你喜欢
    • 2020-03-08
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2015-03-29
    相关资源
    最近更新 更多