亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我想使用 jackson 庫將嵌套在另一個對象內的 json 對象映射到 POJO

我想使用 jackson 庫將嵌套在另一個對象內的 json 對象映射到 POJO

GCT1015 2023-08-09 16:06:03
我有一個對象嵌套在 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)
查看完整描述

2 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

如果您不想對整個響應進行建模,可以使用 Jackson 將 JSON 解析為樹節點,然后僅映射您關心的部分:


ObjectMapper mapper = new ObjectMapper();

JsonNode rootNode = mapper.readTree(json);

JsonNode statusesNode = rootNode.path("data").path("statuses");

List<Status> statuses = mapper.convertValue(statusesNode,

    new TypeReference<List<Status>>(){});


查看完整回答
反對 回復 2023-08-09
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

我在 json 字符串中看到兩個錯誤,修復它應該可以幫助您輕松使用 java 或任何其他語言創建對象。


第 12 行:“缺少第 26 行: 的放置無效,


修復問題后的 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

}


查看完整回答
反對 回復 2023-08-09
  • 2 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號