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

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

如何生成具有動態鍵名稱的對象類型的 JSON 模式?

如何生成具有動態鍵名稱的對象類型的 JSON 模式?

慕婉清6462132 2023-08-04 16:33:08
假設我有以下 json:{? ? "empName": "rameshp",? ? "designation": "SE1",? ? "skills": [? ? ? ? {? ? ? ? ? ? "id": 2,? ? ? ? ? ? "rating": 4,? ? ? ? ? ? "skillName": "Node.js 7",? ? ? ? ? ? "skillCategory": "Programming"? ? ? ? }? ? ]}現在可能有多個像上面這樣的對象,所以我想引用上面的模式,可以從https://www.jsonschema.net生成,但我希望將 empName 作為對象鍵,將上面作為值,所以它將是具有多個唯一鍵(empName)的對象,并且該值將引用上面的模式??紤]下面的例子,當 POJO 通過 序列化為 JSON 時Jackson,它應該如下所示:{? ? "rameshp": {? ? ? ? "empName": "rameshp",? ? ? ? "designation": "SE1",? ? ? ? "skills": [? ? ? ? ? ? {? ? ? ? ? ? ? ? "id": 2,? ? ? ? ? ? ? ? "rating": 4,? ? ? ? ? ? ? ? "skillName": "Node.js 7",? ? ? ? ? ? ? ? "skillCategory": "Programming"? ? ? ? ? ? }? ? ? ? ]? ? },? ? "john": {? ? ? ? "empName": "john",? ? ? ? "designation": "SE2",? ? ? ? "skills": [? ? ? ? ? ? {? ? ? ? ? ? ? ? "id": 2,? ? ? ? ? ? ? ? "rating": 4,? ? ? ? ? ? ? ? "skillName": "Node.js 7",? ? ? ? ? ? ? ? "skillCategory": "Programming"? ? ? ? ? ? }? ? ? ? ]? ? }}此場景的整體架構(JSON 架構)應該是什么?最終,jackson 將用于為此架構生成 POJO,并在我創建的 REST API 中使用。
查看完整描述

1 回答

?
慕蓋茨4494581

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

DTO 類:


public class EmployeeDTO {

? ? String empName;

? ? String designation;

? ? List<SkillDTO> skills;

? ? // getter/setters here

}


public class SkillDTO {

? ? Integer id;

? ? Integer rating;

? ? String skillName;

? ? String skillCategory;

? ? // getter/setters here

}

轉換 JSON:


現在,將 JSON 解析為這些 DTO 后,您可以使用 Stream APIcollect將它們簡單地Map基于字段:empName


List<EmployeeDTO> jsonSchema; // parsed JSON List


Map<String, EmployeeDTO> result = jsonSchema.stream().collect(Collectors.toMap(EmployeeDTO::getEmpName, Function.identity()));


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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