@Override
			public ApiPredicateItem deserialize(JsonParser jp,
					DeserializationContext ctxt) throws IOException {
				ObjectMapper mapper = (ObjectMapper) jp.getCodec();
				ObjectNode root = mapper.readTree(jp);
				Class<? extends ApiPredicateItem> apiPredicateItemClass = null;
				Iterator<Entry<String, JsonNode>> elementsIterator = root.fields();
				while (elementsIterator.hasNext()) {
					Entry<String, JsonNode> element = elementsIterator.next();
					String name = element.getKey();
					if (registry.containsKey(name)) {
						apiPredicateItemClass = registry.get(name);
						break;
					}
				}
				if (apiPredicateItemClass == null) {
					return null;
				}
				return mapper.readValue(root.toString(), apiPredicateItemClass);
			}
@author <a href="mailto:fangjian0423@gmail.com">Jim</a>
spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/SentinelGatewayAutoConfiguration.java