java - Spring - Java Map HashMap to Multi-Layer Pojo

标签 java spring hashmap pojo

我有一个散列图 Map<String, String>具有以下值,请注意点表示层次结构:

+--------------------+-----------+
|    Key             |  Value    |
+--------------------+-----------+
| car.color          | blue      |
| car.engine.make    | mitsubishi|
| car.engine.power   | 120       |
+--------------------+-----------+

我有 pojo 类:

public class Vehicle {

    private Car car;
   **Setters and Getters Below*  
}    

public class Car {
    private String color;

    private Engine engine;
    **Setters and Getters Below*      
}

public class Engine {
    private String make;

    private Integer power;
    **Setters and Getters Below**
}

有什么方法可以根据层次结构将 HashMap 映射到 POJO 类中?我试着用 jackson ObjectMapper mapper = new ObjectMapper();但它似乎能够映射 1 级对象。

最佳答案

如果你想用jackson将hashmap映射到POJO中,你必须重构结构:

{
  "car": {
    "color": "blue",
    "engine": {
      "make": "mitsubishi",
      "power": 20
    }
  }
}

或者,您可以解析 hashmap 并手动构建每个 class

关于java - Spring - Java Map HashMap to Multi-Layer Pojo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44711938/

相关文章:

caching - 如何配置 Spring Redis 配置以使用 Hash 而不是字符串序列化

java - 在 Kubernetes 中,我怎样才能有一种访问模式来一次允许一个 pod 写入而许多 pod 只读?

java - Spring Security Kerberos、Kerberos + AD - 错误 : Access Denied, 没有可存储的 key

java - 为什么即使使用 collections.reverse() 之后 arrayList 在 java 中也不排序

java - 如何使用 Spring Controller 从 URL 读取文件?

java - Grails:是什么导致 NameRegistry.getIdFor 中出现 ArrayIndexOutOfBoundsException?

c++ - 键为 2 的幂的快速映射 (C++)

c# - 使用 LIKE 表达式时 SQLite 中的土耳其字符

java - spring 集成中的运行时可配置动态路由

java - 将字符串从数据库传递给 drawString()