您应该使用 JsonNode 对象。
对于您的示例,您应该这样做:
@Controller public class Controller{ @RequestMapping(value = "service/getData", method = RequestMethod.POST) @ResponseBody public ResponseEntity<Any> getData(@RequestBody JsonNode jsonNode){ ObjectMapper obj = new ObjectMapper(); if(jsonNode.has("name"){ Option1 result= obj.convertValue(jsonNode,Option1.class) return ResponseEntity<Any>(result.name,HttpStatus.OK) } else { Option2 result= obj.convertValue(jsonNode,Option2.class) return ResponseEntity<Any>(result.id,HttpStatus.OK) } return ResponseEntity<Any>("ok",HttpStatus.OK) }您应该从此处导入的JsonNode和ObjectMapper:
import com.fasterxml.jackson.databind.ObjectMapperimport com.fasterxml.jackson.databind.JsonNode;
该链接应帮助您更好地了解JsonNode并提供更多详细信息。
并且此链接应该可以帮助您将JsonNode的convertValue转换为java
object(POJO)。



