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

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

無法使用 Jackson 解析 JSON

無法使用 Jackson 解析 JSON

翻過高山走不出你 2022-05-25 17:43:17
我的代碼中有一個 mongo 數據庫調用。來自數據庫的響應使用 codehaus jackson 進行映射。杰森:[  {    "_id": "555",    "rates": 1,    "reviews": [      {        "author_name": "Instructor 9999",        "_authKey": "demo\\556",        "text": "asdfa",        "date": 551,        "_id": "5454-4920",        "title": "asdf",        "comments": []      }    ],    "votedUsers": [      {        "mng\\39999": 4      }    ],    "rating": 4  },  {    "_id": "45589",    "rates": 1,    "reviews": [      {        "author_name": "feef",        "_authKey": "ad\\ads",        "text": "Working perfect",        "date": 1498659163,        "_id": "asdas-319",        "title": "test",        "comments": []      }    ],    "votedUsers": [      {        "abc\\[email protected]": 4      }    ],    "rating": 4  }]我創建了以下 DTO 結構:@JsonIgnoreProperties(ignoreUnknown = true)public class MaterialReviewsDTO implements Serializable {    private static final long serialVersionUID = 1L;    private String _id;    private int rates;    private List<ReviewsDTO> reviews;    private List<VotedUsersDTO> votedUsers;    //List<TypeReference<HashMap<String, String>>> votedUsers;    private int rating;.    //Getter Setter}@JsonIgnoreProperties(ignoreUnknown = true)public class VotedUsersDTO implements Serializable {    private static final long serialVersionUID = 1L;    private Map<String, String> votedUser;    //Getter Setter}下面是我觸發查詢的代碼:List<MaterialReviewsDTO> materialReviewsDTOs = DBConnectionRealmByDBName                    .find(query,                            MaterialReviewsDTO.class,                            CollectionNameConstant.REVIEWS_COLLECTION);問題是除了以下部分之外,所有 JSON 都在 DTO 中映射:"votedUsers" : [             {                "abc\\[email protected]" : 4            }        ]VotedUserDTO 響應為空。VotedUsers 是包含鍵值對中數據的對象列表。我沒有提到ReviewsDTO,因為它被完美地映射了。我怎樣才能映射votedUsers部分? 注意:我正在使用 Spring 進行開發。
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

JSON 中的一些觀察結果
1. Json 在設計時應牢記固定鍵和變量值。
2. 由于在上述情況下 Key 和 values 都是可變的,我們可以使用 Map
所以最終的解決方案是
從更改private List<VotedUsersDTO> votedUsers;private List<Map<String, Integer>> votedUsers

查看完整回答
反對 回復 2022-05-25
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

private List<Map<String, String>> votedUsers;

不要使用顯式的 votedUser DTO。


查看完整回答
反對 回復 2022-05-25
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

votedUsers 應該是 VotedUsersDTO 列表。

如果您查看 JSON 中的 VotedUsersDTO:


{

"abc\\[email protected]" : 4

}

這意味著有一個字段abc\\[email protected]您希望值為 4。這不符合DTO 定義中的idorvotedUser映射。


查看完整回答
反對 回復 2022-05-25
  • 3 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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