List of usage examples for com.fasterxml.jackson.databind DeserializationContext mappingException
public JsonMappingException mappingException(String paramString)
From source file:net.nullschool.grains.jackson.datatype.GrainDeserializer.java
@Override public Grain deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonToken token = jp.getCurrentToken(); if (token == JsonToken.START_OBJECT) { token = jp.nextToken();/*from www. ja v a2s. com*/ } else if (token != JsonToken.FIELD_NAME) { throw ctxt.mappingException(getValueClass()); } if (token == JsonToken.END_OBJECT) { return factory.getDefaultValue(); } GrainBuilder builder = factory.getNewBuilder(); do { String key = jp.getCurrentName(); PropertyReader reader = readers.get(key); token = jp.nextToken(); Object value; if (token == JsonToken.VALUE_NULL) { value = null; } else if (reader != null) { value = reader.deserializer.deserialize(jp, ctxt); } else { switch (token) { case START_ARRAY: value = extArrayDeserializer.deserialize(jp, ctxt); break; case START_OBJECT: value = extObjectDeserializer.deserialize(jp, ctxt); break; default: value = extValueDeserializer.deserialize(jp, ctxt); } } builder.put(key, value); } while (jp.nextToken() == JsonToken.FIELD_NAME); return builder.build(); }
From source file:io.gravitee.definition.jackson.datatype.services.healthcheck.deser.RequestDeserializer.java
@Override public Request deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = jp.getCodec().readTree(jp); Request request = new Request(); JsonNode uriNode = node.get("uri"); if (uriNode != null) { request.setUri(uriNode.asText()); } else {// ww w . j a v a2 s .c o m throw ctxt.mappingException("[healthcheck] URI is required"); } final JsonNode methodNode = node.get("method"); if (methodNode != null) { request.setMethod(HttpMethod.valueOf(methodNode.asText().toUpperCase())); } else { throw ctxt.mappingException("[healthcheck] Method is required"); } JsonNode bodyNode = node.get("body"); if (bodyNode != null) { request.setBody(bodyNode.asText()); } JsonNode headersNode = node.get("headers"); if (headersNode != null) { List<HttpHeader> headers = new ArrayList<>(); headersNode.elements().forEachRemaining(headerNode -> { HttpHeader header = new HttpHeader(); header.setName(headerNode.findValue("name").asText()); header.setValue(headerNode.findValue("value").asText()); headers.add(header); }); request.setHeaders(headers); } return request; }
From source file:org.hyperledger.dropwizard.hocon.HoconDeserializer.java
protected ConfigValue deserializeScalar(JsonParser jp, DeserializationContext ctxt) throws IOException { switch (jp.getCurrentToken()) { case VALUE_EMBEDDED_OBJECT: throw ctxt.mappingException(JsonValue.class); case VALUE_FALSE: return ConfigValueFactory.fromAnyRef(false); case VALUE_TRUE: return ConfigValueFactory.fromAnyRef(true); case VALUE_NULL: return ConfigValueFactory.fromAnyRef(null); case VALUE_NUMBER_FLOAT: // very cumbersome... but has to be done {/* ww w . ja v a 2s . c o m*/ if (jp.getNumberType() == JsonParser.NumberType.BIG_DECIMAL) { return ConfigValueFactory.fromAnyRef(jp.getDecimalValue()); } return ConfigValueFactory.fromAnyRef(jp.getDoubleValue()); } case VALUE_NUMBER_INT: { switch (jp.getNumberType()) { case LONG: return ConfigValueFactory.fromAnyRef(jp.getLongValue()); case INT: return ConfigValueFactory.fromAnyRef(jp.getIntValue()); default: return ConfigValueFactory.fromAnyRef(jp.getBigIntegerValue()); } } case VALUE_STRING: return ConfigValueFactory.fromAnyRef(jp.getText()); default: // errors, should never get here // case END_ARRAY: // case END_OBJECT: // case FIELD_NAME: // case NOT_AVAILABLE: // case START_ARRAY: // case START_OBJECT: throw ctxt.mappingException(_valueClass); } }
From source file:io.gravitee.definition.jackson.datatype.plugins.resource.deser.ResourceDeserializer.java
@Override public Resource deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = jp.getCodec().readTree(jp); Resource resource = new Resource(); final JsonNode nameNode = node.get("name"); if (nameNode != null) { resource.setName(nameNode.asText()); } else {/*from www. j a v a 2s. c o m*/ throw ctxt.mappingException("[resource] Name is required"); } final JsonNode typeNode = node.get("type"); if (typeNode != null) { resource.setType(typeNode.asText()); } else { throw ctxt.mappingException("[resource] Type is required"); } final JsonNode configurationNode = node.get("configuration"); if (configurationNode != null) { resource.setConfiguration(configurationNode.toString()); } else { throw ctxt.mappingException("[resource] Configuration is required"); } final JsonNode enabledNode = node.get("enabled"); if (enabledNode != null) { resource.setEnabled(enabledNode.asBoolean(true)); } else { resource.setEnabled(true); } return resource; }
From source file:com.inversoft.json.LocaleDeserializer.java
@Override public Locale deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonToken t = jp.getCurrentToken();//ww w. j av a2 s.c om if (t == JsonToken.VALUE_STRING) { String str = jp.getText().trim(); if (str.length() == 0) { return null; } return toLocale(str); } throw ctxt.mappingException(handledType()); }
From source file:org.mongojack.internal.DateDeserializer.java
@Override public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonToken token = jp.getCurrentToken(); if (token == JsonToken.VALUE_EMBEDDED_OBJECT) { // See if it's a date Object date = jp.getEmbeddedObject(); if (date instanceof Date) { return (Date) date; } else {//from ww w .j av a 2 s. c o m throw ctxt.mappingException(Date.class); } } else { return _parseDate(jp, ctxt); } }
From source file:org.hyperledger.jackson.ScriptDeserializer.java
@Override public Script deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonToken t = jp.getCurrentToken();/*from w ww. ja v a 2s . com*/ if (t == JsonToken.VALUE_STRING) { String scriptString = jp.getText().trim(); if (scriptString.length() == 0) { return null; } return new Script(Base64.getDecoder().decode(scriptString)); } throw ctxt.mappingException(handledType()); }
From source file:io.syndesis.model.integration.StepDeserializer.java
@Override public Step deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { ObjectNode node = jp.readValueAsTree(); JsonNode stepKind = node.get(STEP_KIND); if (stepKind != null) { String value = stepKind.textValue(); Class<? extends Step> resourceType = getTypeForName(value); if (resourceType == null) { throw ctxt.mappingException("No step type found for kind:" + value); } else {/* w w w. ja va 2s. c o m*/ return jp.getCodec().treeToValue(node, resourceType); } } return null; }
From source file:io.gravitee.definition.jackson.datatype.api.deser.ApiDeserializer.java
@Override public Api deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = jp.getCodec().readTree(jp); Api api = new Api(); JsonNode idNode = node.get("id"); if (idNode == null) { throw ctxt.mappingException("ID property is required"); } else {//from w ww. jav a 2s. co m api.setId(idNode.asText()); } JsonNode nameNode = node.get("name"); if (nameNode == null) { throw ctxt.mappingException("Name property is required"); } else { api.setName(nameNode.asText()); } JsonNode versionNode = node.get("version"); if (versionNode == null) { api.setVersion("undefined"); } else { api.setVersion(versionNode.asText()); } JsonNode proxyNode = node.get("proxy"); if (proxyNode != null) { api.setProxy(proxyNode.traverse(jp.getCodec()).readValueAs(Proxy.class)); } else { logger.error("A proxy property is required for {}", api.getName()); throw ctxt.mappingException("A proxy property is required for " + api.getName()); } JsonNode servicesNode = node.get("services"); if (servicesNode != null) { Services services = servicesNode.traverse(jp.getCodec()).readValueAs(Services.class); api.getServices().set(services.getAll()); } JsonNode resourcesNode = node.get("resources"); if (resourcesNode != null && resourcesNode.isArray()) { resourcesNode.elements().forEachRemaining(resourceNode -> { try { Resource resource = resourceNode.traverse(jp.getCodec()).readValueAs(Resource.class); if (!api.getResources().contains(resource)) { api.getResources().add(resource); } else { logger.error("A resource already exists with name {}", resource.getName()); throw ctxt.mappingException("A resource already exists with name " + resource.getName()); } } catch (IOException e) { e.printStackTrace(); } }); } JsonNode pathsNode = node.get("paths"); if (pathsNode != null) { final Map<String, Path> paths = new TreeMap<>( (Comparator<String>) (path1, path2) -> path2.compareTo(path1)); pathsNode.fields().forEachRemaining(jsonNode -> { try { Path path = jsonNode.getValue().traverse(jp.getCodec()).readValueAs(Path.class); path.setPath(jsonNode.getKey()); paths.put(jsonNode.getKey(), path); } catch (IOException e) { logger.error("Path {} can not be de-serialized", jsonNode.getKey()); } }); api.setPaths(paths); } JsonNode propertiesNode = node.get("properties"); if (propertiesNode != null) { Map<String, String> properties = new TemplatedValueHashMap(); propertiesNode.fields().forEachRemaining( jsonNode -> properties.put(jsonNode.getKey(), jsonNode.getValue().textValue())); api.setProperties(properties); } JsonNode tagsNode = node.get("tags"); if (tagsNode != null && tagsNode.isArray()) { tagsNode.elements().forEachRemaining(jsonNode -> api.getTags().add(jsonNode.asText())); } return api; }
From source file:org.springframework.social.linkedin.api.impl.json.CodeDeserializer.java
@Override public String deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { if (jp.hasCurrentToken() && jp.getCurrentToken().equals(JsonToken.START_OBJECT)) { ObjectMapper mapper = new ObjectMapper(); JsonNode node = mapper.reader(JsonNode.class).readValue(jp); return node.has(VALUE) ? node.get(VALUE).textValue() : null; }/*from w w w . j a v a 2s .c o m*/ throw ctxt.mappingException("Expected JSON object"); }