杰克逊将 json 转换为字符串映射和列表

Jackson to convert a json into a map of String and a list

我有一个 json 如下所示

{
  "department": [
    {
      "status": "active",
      "count": "100"
    },
    {
      "status": "active",
      "count": "300"
    }
  ],
  "finance": [
    {
      "status": "inactive",
      "count": "500"
    },
    {
      "status": "active",
      "count": "450"
    }
  ]
}

我的对象如下

class CurrentInfo
{
private String status;
private int count;
//getters and setters
}

我想将此 JSON 转换为 Map<String,List<CurrentInfo>>。我可以使用以下

转换单个节点
ObjectMapper mapper = new ObjectMapper();
CurrentInfo currentinfo = mapper.readValue(jsonString, CurrentInfo.class);

有什么方法可以将前面提到的 JSON 直接转换成 Map<String,List<CurrentInfo>>

是的,你可以,根据上面的 JSON countString 类型而不是 int

class CurrentInfo {
    private String status;
    private String count;
    //getters and setters
}

使用TypeReference将json字符串转换为java对象

Map<String, List<CurrentInfo>> currentInfo = mapper.readValue(
        jsonString,
        new TypeReference<Map<String, List<CurrentInfo>>>() {});