@Override
	public JobParameter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
			throws IOException,
			JsonProcessingException {
		ObjectCodec oc = jsonParser.getCodec();
		JsonNode node = oc.readTree(jsonParser);

		final String value = node.get("value").asText();
		final boolean identifying = node.get("identifying").asBoolean();
		final String type = node.get("type").asText();

		final JobParameter jobParameter;

		if (!type.isEmpty() && !type.equalsIgnoreCase("STRING")) {
			if ("DATE".equalsIgnoreCase(type)) {
				jobParameter = new JobParameter(DateTime.parse(value).toDate(), identifying);
			}
			else if ("DOUBLE".equalsIgnoreCase(type)) {
				jobParameter = new JobParameter(Double.valueOf(value), identifying);
			}
			else if ("LONG".equalsIgnoreCase(type)) {
				jobParameter = new JobParameter(Long.valueOf(value), identifying);
			}
			else {
				throw new IllegalStateException("Unsupported JobParameter type: " + type);
			}
		}
		else {
			jobParameter = new JobParameter(value, identifying);
		}

		if (logger.isDebugEnabled()) {
			logger.debug(String.format("jobParameter - value: %s (type: %s, isIdentifying: %s)",
					jobParameter.getValue(), jobParameter.getType().name(), jobParameter.isIdentifying()));
		}

		return jobParameter;
	}
Jackson Deserializer for {@link JobParameter} de-serialization.

@author Gunnar Hillert
@since 1.0
spring-xd-rest-client/src/main/java/org/springframework/xd/rest/client/impl/support/JobParameterJacksonDeserializer.java