List of usage examples for com.fasterxml.jackson.core JsonParser getCodec
public abstract ObjectCodec getCodec();
From source file:org.springframework.batch.admin.domain.support.JobParameterJacksonDeserializer.java
@Override public JobParameter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { SimpleDateFormat formatter = new SimpleDateFormat(); 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)) { try { jobParameter = new JobParameter(formatter.parse(value), identifying); } catch (ParseException e) { throw new IOException(e); }//from w w w . j a v a 2 s . c o m } 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; }
From source file:org.mycontroller.standalone.api.jaxrs.mixins.ExternalServerMixin.java
@Override public ExternalServer deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { ObjectCodec objectCodec = jp.getCodec(); JsonNode node = objectCodec.readTree(jp); if (node.get("id") == null && node.get("type") == null) { return null; }/* ww w . j a v a 2 s .c o m*/ EXTERNAL_SERVER_TYPE type = EXTERNAL_SERVER_TYPE.fromString(node.get("type").asText()); ExternalServer externalServer = null; switch (type) { case PHANT_IO: ExternalServerPhantIO extServerPhantIO = new ExternalServerPhantIO(); extServerPhantIO.setUrl(node.get("url").asText()); extServerPhantIO.setPublicKey(node.get("publicKey").asText()); extServerPhantIO.setPrivateKey(node.get("privateKey").asText()); extServerPhantIO.setTrustHostType(TRUST_HOST_TYPE.fromString(node.get("trustHostType").asText())); externalServer = extServerPhantIO; break; case EMONCMS: ExternalServerEmoncms extServerEmoncms = new ExternalServerEmoncms(); extServerEmoncms.setUrl(node.get("url").asText()); extServerEmoncms.setWriteApiKey(node.get("writeApiKey").asText()); extServerEmoncms.setTrustHostType(TRUST_HOST_TYPE.fromString(node.get("trustHostType").asText())); externalServer = extServerEmoncms; break; case INFLUXDB: ExternalServerInfluxdb extServerInfluxdb = new ExternalServerInfluxdb(); extServerInfluxdb.setUrl(node.get("url").asText()); extServerInfluxdb.setDatabase(node.get("database").asText()); if (node.get("username") != null) { extServerInfluxdb.setUsername(node.get("username").asText()); extServerInfluxdb.setPassword(node.get("password").asText()); } if (node.get("tags") != null) { extServerInfluxdb.setTags(node.get("tags").asText()); } extServerInfluxdb.setTrustHostType(TRUST_HOST_TYPE.fromString(node.get("trustHostType").asText())); externalServer = extServerInfluxdb; break; default: break; } //Update RuleDefinition details if (node.get("id") != null) { externalServer.setId(node.get("id").asInt()); } externalServer.setKeyFormat(node.get("keyFormat").asText()); externalServer.setEnabled(node.get("enabled").asBoolean()); externalServer.setName(node.get("name").asText()); externalServer.setType(type); return externalServer; }
From source file:com.google.gplus.serializer.util.GPlusActivityDeserializer.java
/** * Because the GooglePlus Activity object {@link com.google.api.services.plus.model.Activity} contains complex objects * within its hierarchy, we have to use a custom deserializer * * @param jsonParser// w ww.j a v a 2 s .c o m * @param deserializationContext * @return The deserialized {@link com.google.api.services.plus.model.Activity} object * @throws IOException * @throws JsonProcessingException */ @Override public Activity deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { JsonNode node = jsonParser.getCodec().readTree(jsonParser); Activity activity = new Activity(); try { activity.setUrl(node.get("url").asText()); activity.setEtag(node.get("etag").asText()); activity.setTitle(node.get("title").asText()); activity.setPublished(DateTime.parseRfc3339(node.get("published").asText())); activity.setUpdated(DateTime.parseRfc3339(node.get("updated").asText())); activity.setId(node.get("id").asText()); activity.setVerb(node.get("verb").asText()); activity.setActor(buildActor(node)); activity.setObject(buildPlusObject(node)); } catch (Exception e) { LOGGER.error("Exception while trying to deserialize activity object: {}", e); } return activity; }
From source file:io.progix.dropwizard.patch.explicit.PatchInstructionDeserializer.java
/** * This method is responsible for deserialization of a {@link PatchInstruction} * <p/>// w w w . j a v a 2s . co m * The value in a patch instruction is mapped to a TreeMap and can be later converted to a class of choice using * {@link JsonPatchValue} * * @see JsonDeserializer */ @Override public PatchInstruction deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { untypedObjectDeserializer.resolve(ctxt); JsonNode node = jp.getCodec().readTree(jp); PatchOperation operation = PatchOperation.valueOf(node.get("op").asText().toUpperCase()); String path = node.get("path").asText(); String from = null; JsonNode fromNode = node.get("from"); if (fromNode != null) { from = fromNode.asText(); } List<Object> values = null; JsonNode valueNode = node.get("value"); if (valueNode != null) { values = new ArrayList<>(); if (valueNode.isArray()) { Iterator<JsonNode> iterator = valueNode.elements(); while (iterator.hasNext()) { JsonNode elementNode = iterator.next(); JsonParser p = elementNode.traverse(); if (!p.hasCurrentToken()) { p.nextToken(); } Object element = untypedObjectDeserializer.deserialize(p, ctxt); values.add(element); } } else { JsonParser p = valueNode.traverse(); if (!p.hasCurrentToken()) { p.nextToken(); } Object value = untypedObjectDeserializer.deserialize(p, ctxt); values.add(value); } } return new PatchInstruction(operation, path, values, from); }
From source file:com.strategicgains.hyperexpress.serialization.siren.jackson.SirenResourceDeserializer.java
@Override public SirenResource deserialize(JsonParser jp, DeserializationContext context) throws IOException, JsonProcessingException { ObjectCodec oc = jp.getCodec(); return deserializeResource((JsonNode) jp.readValueAsTree(), oc); }
From source file:ijfx.service.overlay.io.OverlayDeserializer.java
@Override public Overlay deserialize(JsonParser jp, DeserializationContext dc) throws IOException, JsonProcessingException { JsonNode node = jp.getCodec().readTree(jp); String type = node.get(JsonOverlayToken.OVERLAY_TYPE).asText(); if (type.equals(JsonOverlayToken.RECTANGLE_OVERLAY)) { return loadRectangle(node); }// www . j a v a 2s . co m if (type.equals(JsonOverlayToken.POLYGON_OVERLAY)) { return loadPolygon(node); } if (type.equals(JsonOverlayToken.LINE_OVERLAY)) { return loadLine(node); } 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 ww w. j a v a2 s . com 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.broadleafcommerce.openadmin.web.rulebuilder.DataDTODeserializer.java
@Override public DataDTO deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { ObjectMapper mapper = (ObjectMapper) jp.getCodec(); ObjectNode root = (ObjectNode) mapper.readTree(jp); Iterator<Map.Entry<String, JsonNode>> elementsIterator = root.fields(); DataDTO dataDTO = new DataDTO(); ExpressionDTO expressionDTO = new ExpressionDTO(); boolean isExpression = false; while (elementsIterator.hasNext()) { Map.Entry<String, JsonNode> element = elementsIterator.next(); String name = element.getKey(); if ("id".equals(name)) { expressionDTO.setId(getNullAwareText(element.getValue())); isExpression = true;/*from w ww. j a v a 2 s .c o m*/ } if ("operator".equals(name)) { expressionDTO.setOperator(getNullAwareText(element.getValue())); isExpression = true; } if ("value".equals(name)) { expressionDTO.setValue(getNullAwareText(element.getValue())); isExpression = true; } if ("pk".equals(name)) { if (getNullAwareText(element.getValue()) == null || StringUtils.isBlank(element.getValue().asText())) { dataDTO.setPk(null); } else { dataDTO.setPk(element.getValue().asLong()); } } if ("quantity".equals(name)) { if (getNullAwareText(element.getValue()) == null) { dataDTO.setQuantity(null); } else { dataDTO.setQuantity(element.getValue().asInt()); } } if ("condition".equals(name)) { dataDTO.setCondition(getNullAwareText(element.getValue())); } if ("rules".equals(name)) { CollectionType dtoCollectionType = mapper.getTypeFactory().constructCollectionType(ArrayList.class, DataDTO.class); dataDTO.setRules((ArrayList<DataDTO>) mapper.readValue(element.getValue().traverse(jp.getCodec()), dtoCollectionType)); } } if (isExpression) { return expressionDTO; } else { return dataDTO; } }
From source file:com.strategicgains.hyperexpress.serialization.jackson.HalResourceDeserializer.java
@Override public HalResource deserialize(JsonParser jp, DeserializationContext context) throws IOException, JsonProcessingException { ObjectCodec oc = jp.getCodec(); return deserializeResource((JsonNode) jp.readValueAsTree(), oc); }
From source file:org.springframework.security.jackson2.UsernamePasswordAuthenticationTokenDeserializer.java
/** * This method construct {@link UsernamePasswordAuthenticationToken} object from serialized json. *//*from w ww. jav a 2s. c o m*/ @Override public UsernamePasswordAuthenticationToken deserialize(JsonParser jsonParser, DeserializationContext context) throws IOException, JsonProcessingException { UsernamePasswordAuthenticationToken token; ObjectMapper mapper = (ObjectMapper) jsonParser.getCodec(); JsonNode jsonNode = mapper.readTree(jsonParser); Boolean authenticated = readJsonNode(jsonNode, "authenticated").asBoolean(); JsonNode principalNode = readJsonNode(jsonNode, "principal"); Object principal; if (principalNode.isObject()) { Class principalClass = LinkedHashMap.class; if (principalNode.hasNonNull("@class")) { try { principalClass = Class.forName(principalNode.get("@class").asText()); } catch (ClassNotFoundException e) { throw new RuntimeException( "Could not load principal class [" + principalNode.get("@class").asText() + "]", e); } } principal = mapper.readValue(principalNode.toString(), principalClass); } else { principal = principalNode.asText(); } Object credentials = readJsonNode(jsonNode, "credentials").asText(); List<GrantedAuthority> authorities = mapper.readValue(readJsonNode(jsonNode, "authorities").toString(), new TypeReference<List<GrantedAuthority>>() { }); if (authenticated) { token = new UsernamePasswordAuthenticationToken(principal, credentials, authorities); } else { token = new UsernamePasswordAuthenticationToken(principal, credentials); } token.setDetails(readJsonNode(jsonNode, "details")); return token; }