慕婉清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()));
添加回答
舉報
0/150
提交
取消