Java Spring中使用RestTemplate的复杂Json映射

Java Spring中使用RestTemplate的复杂Json映射,java,json,spring,resttemplate,Java,Json,Spring,Resttemplate,我正在尝试用Java实体类映射jsonResponse。json响应如下所示 "classResults":{ "classSuggestion":[ "classA", { "section":"section c" } ] } 我用于映射的Java类可能如下所示

我正在尝试用Java实体类映射jsonResponse。json响应如下所示

   "classResults":{
      "classSuggestion":[
          "classA",
          {
            "section":"section c"
          }
      ]
    }
    
我用于映射的Java类可能如下所示。我将有一个ClassSuggestion对象,以便映射ClassSuggestion对象。然而,classSuggestion如何像上面那样保存json数据

public class ClassResults {

   ClassSuggestion classSuggestion

}
我的建议怎么样

public class ClassSuggestion {

   String classes
   String section
}
如何将其映射到Java类或数据类型?

@data//lombok
@Data // lombok
public class ClassResults {
   private List<ClassSuggestion> classSuggestion; // mapped from array
}

@Data
@NoArgsConstructor
public class ClassSuggestion {
   private String classes;
   private String section;
   public ClassSuggestion(String classes) {
     this.classes = classes; //Handle string "classA"
   }
}
公开课成绩{ 私有列表classSuggestion;//从数组映射 } @资料 @诺尔格构装师 公开课建议{ 私有字符串类; 私有字符串部分; 公共类建议(字符串类){ this.classes=classes;//句柄字符串“classA” } }
我通过编写自定义反序列化程序解决了这个问题:

class ClassSuggestionDeserializer extends StdDeserializer<Employee> {

   @Override
   public Map<String, String> deserialize(JsonParser jp, DeserializationContext dc) throws IOException, JsonProcessingException {
      ObjectCodec codec = jp.getCodec();
      TreeNode node = codec.readTree(jp);
      JsonNode classResults = node.get("classResults");
      // and finally iterating through the classResults to get string values
   }
}
class ClassSuggestionDeserializer扩展StdDeserializer{
@凌驾
公共映射反序列化(JsonParser jp,反序列化上下文dc)引发IOException,JsonProcessingException{
ObjectCodec codec=jp.getCodec();
TreeNode节点=codec.readTree(jp);
JsonNode classResults=node.get(“classResults”);
//最后遍历classResults以获得字符串值
}
}
同时,在数据类上,使用自定义反序列化器使用JsonDeserialize

@JsonDeserialize(using=ClassSuggestionDeserializer.class)
public class ClassSuggestion {

   Map<String, String> classResults;

 }
@JsonDeserialize(使用=ClassSuggestionDeserializer.class)
公开课建议{
地图分类结果;
}

简而言之,您想要一个联合类型?是否可以将
“classA”
封装在类似于
{“section”:“section c”}
的对象中(您是否可以控制JSON API)?可以有多少字符串和
对象?我无法控制JSON API,它属于不同的团队。我能够使用自定义反序列化器进行反序列化,我最初试图避免使用自定义反序列化器。