Java Code Examples for com.fasterxml.jackson.core.ObjectCodec#treeToValue()
The following examples show how to use
com.fasterxml.jackson.core.ObjectCodec#treeToValue() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SelfHealingEngine.java From healenium-web with Apache License 2.0 | 7 votes |
/** * Convert raw data to {@code Node} * @param parser - JSON reader * @return path node * @throws IOException */ private Node toNode(JsonParser parser) throws IOException { ObjectCodec codec = parser.getCodec(); TreeNode tree = parser.readValueAsTree(); String tag = codec.treeToValue(tree.path(FieldName.TAG), String.class); Integer index = codec.treeToValue(tree.path(FieldName.INDEX), Integer.class); String innerText = codec.treeToValue(tree.path(FieldName.INNER_TEXT), String.class); String id = codec.treeToValue(tree.path(FieldName.ID), String.class); //noinspection unchecked Set<String> classes = codec.treeToValue(tree.path(FieldName.CLASSES), Set.class); //noinspection unchecked Map<String, String> attributes = codec.treeToValue(tree.path(FieldName.OTHER), Map.class); return new NodeBuilder() //TODO: fix attribute setting, because they override 'id' and 'classes' property .setAttributes(attributes) .setTag(tag) .setIndex(index) .setId(id) .addContent(innerText) .setClasses(classes) .build(); }
Example 2
Source File: AbstractJobParametersDeserializer.java From dhis2-core with BSD 3-Clause "New" or "Revised" License | 6 votes |
@Override public T deserialize( JsonParser p, DeserializationContext ctxt ) throws IOException { final ObjectCodec oc = p.getCodec(); final JsonNode jsonNode; if ( oc instanceof XmlMapper ) { jsonNode = createJsonNode( p, ctxt ); return objectMapper.treeToValue( jsonNode, overrideClass ); } else { jsonNode = oc.readTree( p ); // original object mapper must be used since it may have different serialization settings return oc.treeToValue( jsonNode, overrideClass ); } }
Example 3
Source File: NodeDeserializer.java From healenium-web with Apache License 2.0 | 6 votes |
@Override public Node deserialize(JsonParser parser, DeserializationContext ctxt) throws IOException { ObjectCodec codec = parser.getCodec(); TreeNode tree = parser.readValueAsTree(); String tag = codec.treeToValue(tree.path(FieldName.TAG), String.class); Integer index = codec.treeToValue(tree.path(FieldName.INDEX), Integer.class); String innerText = codec.treeToValue(tree.path(FieldName.INNER_TEXT), String.class); String id = codec.treeToValue(tree.path(FieldName.ID), String.class); String classes = codec.treeToValue(tree.path(FieldName.CLASSES), String.class); Map<String, String> attributes = codec.treeToValue(tree.path(FieldName.OTHER), Map.class); attributes.put(FieldName.ID, id); attributes.put(FieldName.CLASS, classes); return new NodeBuilder() .setTag(tag) .setIndex(index) .addContent(innerText) .setAttributes(attributes) .build(); }
Example 4
Source File: RedmineCommentDeserialiser.java From scava with Eclipse Public License 2.0 | 6 votes |
@Override public RedmineComment deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { ObjectCodec oc = parser.getCodec(); JsonNode node = oc.readTree(parser); RedmineComment comment = new RedmineComment(); comment.setCommentId(getText(node, "id")); comment.setText(getText(node, "notes")); comment.setCreationTime(getDate(node, context, "created_on")); comment.setCreator(getText(node, "user", "name")); comment.setCreatorId(getInteger(node, "user", "id") ); JsonNode detailsNode = node.get("details"); if (null != detailsNode) { RedmineCommentDetails[] details = oc.treeToValue(detailsNode, RedmineCommentDetails[].class); for (RedmineCommentDetails d : details) { comment.getDetails().add(d); } } return comment; }
Example 5
Source File: SourceForgeCommentDeserialiser.java From scava with Eclipse Public License 2.0 | 6 votes |
@Override public SourceForgeComment deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { ObjectCodec oc = parser.getCodec(); JsonNode node = oc.readTree(parser); JsonNode attachmentsNode = node.path("attachments"); SourceForgeAttachment[] attachments = oc.treeToValue(attachmentsNode, SourceForgeAttachment[].class); SourceForgeComment comment = new SourceForgeComment(); comment.setSubject(getText(node, "subject")); comment.setText(getText(node, "text")); comment.setCreator(getText(node,"author")); comment.setAttachments(attachments); comment.setCommentId(getText(node, "slug")); comment.setCreationTime(getDate(node, SourceForgeConstants.RESPONSE_DATE_FORMATTER, "timestamp")); comment.setUpdateDate(getDate(node, SourceForgeConstants.RESPONSE_DATE_FORMATTER, "last_edited")); return comment; }
Example 6
Source File: SourceForgeTopicDeserialiser.java From scava with Eclipse Public License 2.0 | 6 votes |
@Override public SourceForgeTopic deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { ObjectCodec oc = parser.getCodec(); JsonNode node = oc.readTree(parser); node = node.get("topic"); SourceForgeTopic topic = new SourceForgeTopic(); String topicId = getText(node, "_id"); topic.setTopicId(topicId); topic.setDiscussionId(getText(node, "discussion_id")); topic.setSubject(getText(node, "subject")); JsonNode articlesNode = node.path("posts"); SourceForgeArticle[] articles = oc.treeToValue(articlesNode, SourceForgeArticle[].class); for (SourceForgeArticle article: articles) { article.setMessageThreadId(topicId); topic.getArticles().add(article); } return topic; }
Example 7
Source File: SourceForgeArticleDeserialiser.java From scava with Eclipse Public License 2.0 | 6 votes |
@Override public SourceForgeArticle deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { ObjectCodec oc = parser.getCodec(); JsonNode node = oc.readTree(parser); JsonNode attachmentsNode = node.path("attachments"); SourceForgeAttachment[] attachments = oc.treeToValue(attachmentsNode, SourceForgeAttachment[].class); SourceForgeArticle article = new SourceForgeArticle(); article.setArticleNumber(articleNumber++); article.setSubject(getText(node, "subject")); article.setText(getText(node, "text")); article.setUser(getText(node,"author")); article.setAttachments(attachments); article.setArticleId(getText(node, "slug")); article.setDate(getDate(node, SourceForgeConstants.RESPONSE_DATE_FORMATTER, "timestamp")); article.setUpdateDate(getDate(node, SourceForgeConstants.RESPONSE_DATE_FORMATTER, "last_edited")); article.setReferences(new String[0]); return article; }
Example 8
Source File: BlockElementActionDeserializer.java From slack-client with Apache License 2.0 | 6 votes |
@Override public BlockElementAction deserialize(JsonParser p, DeserializationContext context) throws IOException { BlockElementAction.Builder builder = BlockElementAction.builder(); ObjectCodec codec = p.getCodec(); JsonNode node = codec.readTree(p); builder.setBlockId(node.get(BLOCK_ID_FIELD).asText()); // select menu elements don't send a value field, they send a `selected_option` object that has a value field if (node.has("selected_option")) { builder.setSelectedValue(readOptionalString(node.get("selected_option"), VALUE_FIELD)); } else { builder.setSelectedValue(readOptionalString(node, VALUE_FIELD)); } // datepickers don't have a value field, but they have a "selected_date" field with a LocalDate-style string if (node.has("selected_date")) { readOptionalString(node, SELECTED_DATE_FIELD) .map(LocalDate::parse) .ifPresent(builder::setSelectedDate); } builder.setActionTs(readOptionalString(node, ACTION_TS_FIELD)); BlockElement element = codec.treeToValue(node, BlockElement.class); builder.setElement(element); return builder.build(); }
Example 9
Source File: StateActionValueDeserializer.java From slack-client with Apache License 2.0 | 6 votes |
@Override public StateActionValue deserialize(JsonParser p, DeserializationContext context) throws IOException { final StateActionValue.Builder builder = StateActionValue.builder(); ObjectCodec codec = p.getCodec(); JsonNode node = codec.readTree(p); if (node.has("type")) { builder.setBlockElementType(node.get("type").asText()); } if (node.has("value")) { builder.setBlockElementValue(node.get("value").asText()); } else if (node.has("selected_option")) { final JsonNode selectedOption = node.get("selected_option"); final Option option = codec.treeToValue(selectedOption, Option.class); builder.setBlockElementValue(option); } else if (node.has("selected_date")) { builder.setBlockElementValue(LocalDate.parse(node.get("selected_date").asText())); } return builder.build(); }
Example 10
Source File: ValueImpl.java From Wikidata-Toolkit with Apache License 2.0 | 5 votes |
@Override public ValueImpl deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException { ObjectCodec mapper = jsonParser.getCodec(); JsonNode root = mapper.readTree(jsonParser); Class<? extends ValueImpl> valueClass = getValueClass(root, jsonParser); return mapper.treeToValue(root, valueClass); }
Example 11
Source File: ImageBlockOrTextDeserializer.java From slack-client with Apache License 2.0 | 5 votes |
@Override public ImageBlockOrText deserialize(JsonParser p, DeserializationContext context) throws IOException { ObjectCodec codec = p.getCodec(); JsonNode node = codec.readTree(p); String type = node.get(TYPE_FIELD).asText(); if (Image.TYPE.equals(type)) { return codec.treeToValue(node, Image.class); } return codec.treeToValue(node, Text.class); }
Example 12
Source File: EventDeserializer.java From slack-client with Apache License 2.0 | 5 votes |
@Override public SlackEvent deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { ObjectCodec codec = p.getCodec(); JsonNode node = codec.readTree(p); SlackEventType type = SlackEventType.get(node.get(TYPE_FIELD).asText()); // Messages can have subtypes that we need to handle if (type == SlackEventType.MESSAGE && node.has(SUBTYPE_FIELD)) { SlackMessageSubtype subtype = SlackMessageSubtype.get(node.get(SUBTYPE_FIELD).asText()); return codec.treeToValue(node, subtype.getMessageClass()); } return codec.treeToValue(node, type.getEventClass()); }
Example 13
Source File: BlockOrAttachmentDeserializer.java From slack-client with Apache License 2.0 | 5 votes |
@Override public BlockOrAttachment deserialize(JsonParser jsonParser, DeserializationContext context) throws IOException { ObjectCodec codec = jsonParser.getCodec(); JsonNode node = codec.readTree(jsonParser); if (node.has(TYPE_FIELD)) { return codec.treeToValue(node, Block.class); } else { return codec.treeToValue(node, Attachment.class); } }
Example 14
Source File: ClassWithInterfaceFieldsRegistry.java From istio-java-api with Apache License 2.0 | 5 votes |
Object deserialize(JsonNode node, String fieldName, Class targetClass, DeserializationContext ctxt) throws IOException { final String type = getFieldClassFQN(targetClass, type()); try { final Class<?> fieldClass = Thread.currentThread().getContextClassLoader().loadClass(type); // check if we have embedded interface field, in which case the target field won't be declared on the target // class but rather on the class pointed to by the field // e.g. given: // trafficPolicy: // loadBalancer: // simple: ROUND_ROBIN // LoadBalancerSettings (loadBalancer field) doesn't have a `simple` field, this is just an unwrapped // implementation of the LbPolicy interface, so we need to check the type of the `simple` field and deserialize // the node as an instance of that class instead. final Optional<Field> field = getField(targetClass, fieldName); final ObjectCodec codec = ctxt.getParser().getCodec(); if (field.isPresent()) { // if field is present, deserialize it with the specified field class return codec.treeToValue(getTargetNode(node, fieldName), fieldClass); } else { // otherwise, get the type of the field final Class<?> childFieldClass = fieldClass.getDeclaredField(fieldName).getType(); // deserialize the field using that new class Object childObject = codec.treeToValue(getTargetNode(node, fieldName), childFieldClass); // finally, build the instance assigning it the deserialized child field // NOTE: this only works if the interface implementation only has one field (since otherwise, there won't // be a single-argument constructor accepting an instance of the newly created instance return fieldClass.getDeclaredConstructor(childFieldClass).newInstance(childObject); } } catch (ClassNotFoundException | JsonProcessingException | NoSuchFieldException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) { throw new RuntimeException("Unsupported type '" + type + "' for field '" + fieldName + "' on '" + targetClass.getName() + "' class", e); } }
Example 15
Source File: BaseSubTypeJsonDeserializer.java From chrome-devtools-java-client with Apache License 2.0 | 5 votes |
@SuppressWarnings("unchecked") public T deserialize(JsonParser jsonParser, DeserializationContext context) throws IOException { ObjectCodec objectCodec = jsonParser.getCodec(); ObjectNode objectNode = objectCodec.readTree(jsonParser); String typeValue = null; JsonNode type = objectNode.get(TYPE_PROPERTY); if (type != null) { typeValue = type.asText(); if (STRING_PROPERTY_VALUE.equals(typeValue)) { if (objectNode.get(ENUM_PROPERTY) != null) { typeValue = "enum"; } } } else { if (objectNode.get(REF_PROPERTY) != null) { typeValue = "ref"; } } if (typeValue == null) { throw new JsonParseException(jsonParser, "Unknown object type."); } DeserializationConfig config = context.getConfig(); AnnotatedClass annotatedClass = AnnotatedClassResolver.resolveWithoutSuperTypes(config, handledType()); List<NamedType> subtypes = config.getAnnotationIntrospector().findSubtypes(annotatedClass); for (NamedType namedType : subtypes) { if (typeValue.equals(namedType.getName())) { return (T) objectCodec.treeToValue(objectNode, namedType.getType()); } } throw new JsonParseException(jsonParser, "Unknown object type " + typeValue + "."); }
Example 16
Source File: CertPathDeserializer.java From webauthn4j with Apache License 2.0 | 5 votes |
/** * {@inheritDoc} */ @Override public CertPath deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { ObjectCodec oc = p.getCodec(); ArrayNode node = oc.readTree(p); List<Certificate> list = new ArrayList<>(); for (JsonNode item : node) { X509Certificate certificate = oc.treeToValue(item, X509Certificate.class); list.add(certificate); } return CertificateUtil.generateCertPath(list); }
Example 17
Source File: StateBlockDeserializer.java From slack-client with Apache License 2.0 | 4 votes |
@Override public StateBlock deserialize(JsonParser p, DeserializationContext context) throws IOException { ObjectCodec codec = p.getCodec(); JsonNode node = codec.readTree(p); return codec.treeToValue(node.get(VALUES_FIELD), StateBlock.class); }
Example 18
Source File: LSServerPostMapValuesListDeserializer.java From ambari-logsearch with Apache License 2.0 | 4 votes |
@Override public LSServerPostMapValuesList deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { ObjectCodec oc = jp.getCodec(); JsonNode node = oc.readTree(jp); List<LSServerPostMapValues> mappersList = new ArrayList<>(); for (JsonNode childNode : node) { List<LSServerMapField> mappers = new ArrayList<>(); for (Iterator<Map.Entry<String, JsonNode>> i = childNode.fields(); i.hasNext();) { Map.Entry<String, JsonNode> mapperData = i.next(); String mapperType = mapperData.getKey(); JsonNode mapperProperties = mapperData.getValue(); switch (mapperType) { case "map_date" : LSServerMapDate mapDate = oc.treeToValue(mapperProperties, LSServerMapDate.class); mappers.add(mapDate); break; case "map_field_name" : LSServerMapFieldName mapFieldName = oc.treeToValue(mapperProperties, LSServerMapFieldName.class); mappers.add(mapFieldName); break; case "map_field_value" : LSServerMapFieldValue mapFieldValue = oc.treeToValue(mapperProperties, LSServerMapFieldValue.class); mappers.add(mapFieldValue); break; case "map_field_copy" : LSServerMapFieldCopy mapFieldCopy = oc.treeToValue(mapperProperties, LSServerMapFieldCopy.class); mappers.add(mapFieldCopy); break; case "map_anonymize" : LSServerMapFieldAnonymize mapAnonymize = oc.treeToValue(mapperProperties, LSServerMapFieldAnonymize.class); mappers.add(mapAnonymize); break; } } LSServerPostMapValues lsServerPostMapValues = new LSServerPostMapValues(); lsServerPostMapValues.setMappers(mappers); mappersList.add(lsServerPostMapValues); } LSServerPostMapValuesList lsServerPostMapValuesList = new LSServerPostMapValuesList(); lsServerPostMapValuesList.setMappersList(mappersList); return lsServerPostMapValuesList; }
Example 19
Source File: SourceForgeTicketDeserialiser.java From scava with Eclipse Public License 2.0 | 4 votes |
@Override public SourceForgeTicket deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { ObjectCodec oc = parser.getCodec(); JsonNode node = oc.readTree(parser); node = node.get("ticket"); SourceForgeTicket ticket = new SourceForgeTicket(); JsonNode attachmentsNode = node.path("attachments"); SourceForgeAttachment[] attachments = oc.treeToValue(attachmentsNode, SourceForgeAttachment[].class); JsonNode labelsNode = node.path("labels"); String[] labels = oc.treeToValue(labelsNode, String[].class); String bugId = getText(node, "ticket_num"); ticket.setBugId(bugId); ticket.setAssignee(getText(node, "assigned_to")); ticket.setAssigneeId(getText(node, "assigned_to_id")); ticket.setAttachments(attachments); ticket.setCommentsUrl(getText(node, "discussion_thread_url")); ticket.setCreationTime(getDate(node, SourceForgeConstants.RESPONSE_DATE_FORMATTER, "created_date")); ticket.setCreator(getText(node, "reported_by")); ticket.setCreatorId(getText(node, "reported_by_id")); ticket.setDescription(getText(node, "description")); ticket.setInternalId(getText(node, "_id")); ticket.setLabels(labels); ticket.setPrivate(getBoolean(node, "private")); ticket.setStatus(getText(node, "status")); ticket.setSummary(getText(node, "summary")); ticket.setUpdateDate(getDate(node, SourceForgeConstants.RESPONSE_DATE_FORMATTER, "mod_date")); ticket.setVotesDown(getInteger(node, "votes_down")); ticket.setVotesUp(getInteger(node, "votes_up")); JsonNode commentsNode = node.path("discussion_thread").path("posts"); SourceForgeComment[] comments = oc.treeToValue(commentsNode, SourceForgeComment[].class); for (SourceForgeComment comment: comments) { comment.setBugId(bugId); ticket.getComments().add(comment); } return ticket; }
Example 20
Source File: RedmineIssueDeserialiser.java From scava with Eclipse Public License 2.0 | 4 votes |
@Override public RedmineIssue deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { ObjectCodec oc = parser.getCodec(); JsonNode node = oc.readTree(parser); RedmineIssue issue = new RedmineIssue(); String bugId = getText(node, "id"); issue.setBugId(bugId); issue.setCategory(getText(node, "category", "name")); issue.setCategoryId(getInteger(node, "category", "id")); issue.setCreationTime(getDate(node, context, "created_on")); issue.setCreator(getText(node, "author", "name")); issue.setCreatorId(getInteger(node, "author", "id")); issue.setDescription(getText(node, "description")); issue.setPriority(getText(node, "priority", "name")); issue.setPriorityId(getInteger(node, "priority", "id")); issue.setProject(getText(node, "project", "name")); issue.setProjectId(getInteger(node, "project", "id")); issue.setStatus(getText(node, "status", "name")); issue.setStatusId(getInteger(node, "status", "id")); issue.setSubject(getText(node, "subject")); issue.setTracker(getText(node, "tracker", "name")); issue.setTrackerId(getInteger(node, "tracker", "id")); issue.setUpdateDate(getDate(node, context, "updated_on")); JsonNode commentsNode = node.get("journals"); if (null != commentsNode) { RedmineComment[] comments = oc.treeToValue(commentsNode, RedmineComment[].class); for (RedmineComment comment : comments) { issue.getComments().add(comment); comment.setBugId(bugId); } } return issue; }