我想使用 jackson 库将嵌套在另一个对象内的 json 对象映射到 POJO

我有一个对象嵌套在 Json 文件中的另一个对象内。我想将此对象与字段映射到模型类。


{

"code": 200,

"time": "2019-09-05T07:09:44.228+0000",

"data": {

    "statuses": [

        {

            "statusType": "IN_PROGRESS",

            "statusTimestamp":"019-09-05T17:04:54+1000"

        },

        {

            "statusType": "SENT",

            "statusTimestamp":"2019-09-05T21:04:55+1000"

        },

        {

            "statusType": "OPENED",

            "statusTimestamp":"2019-09-05T23:04:55+1000"

        },

        {

            "statusType": "INTERACTION_ID_RECEIVED",

            "statusTimestamp":"2019-09-06T00:04:55+1000"

        }

    ]

},

"status": 200,

"message": null,

"errors": null,

}

我想将 statusType 和 TimeStamp 映射到自定义模型类。


型号类别:


公开课模型{


private String statusType;

private DateTime statusTimestamp;


public Model(String statusType, String statusTimestamp) {

    this.statusType=statusType;

    this.statusTimestamp=new DateTime(statusTimestamp);

}

public String getStatusType() {

    return statusType;

}


public void setStatusType(String statusType) {

    this.statusType = statusType;

}


public DateTime getStatusTimestamp() {

    return statusTimestamp;

}


public void setStatusTimestamp(String statusTimestamp) {

    this.statusTimestamp = new DateTime(statusTimestamp);

}

}

我想将状态映射到该模型类并将这些对象存储在类似这样的链接中

列表状态 = ParsedJson.read("$..['statuses'][*]", List.class)


GCT1015
浏览 112回答 2
2回答

鸿蒙传说

如果您不想对整个响应进行建模,可以使用 Jackson 将 JSON 解析为树节点,然后仅映射您关心的部分:ObjectMapper mapper = new ObjectMapper();JsonNode rootNode = mapper.readTree(json);JsonNode statusesNode = rootNode.path("data").path("statuses");List<Status> statuses = mapper.convertValue(statusesNode,&nbsp; &nbsp; new TypeReference<List<Status>>(){});

湖上湖

我在 json 字符串中看到两个错误,修复它应该可以帮助您轻松使用 java 或任何其他语言创建对象。第 12 行:“缺少第 26 行: 的放置无效,修复问题后的 Json{"code": 200,"time": "2019-09-05T07:09:44.228+0000","data": {&nbsp; &nbsp; "statuses": [&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "statusType": "IN_PROGRESS",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "statusTimestamp":"019-09-05T17:04:54+1000"&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "statusType": "SENT",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "statusTimestamp":"2019-09-05T21:04:55+1000"&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "statusType": "OPENED",&nbsp; &nbsp; &nbsp; &nbsp; "statusTimestamp":"2019-09-05T23:04:55+1000"&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "statusType": "INTERACTION_ID_RECEIVED",&nbsp; &nbsp; &nbsp; &nbsp; "statusTimestamp":"2019-09-06T00:04:55+1000"&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; ]},"status": 200,"message": null,"errors": null}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java