Example usage for com.fasterxml.jackson.core JsonParser readValueAsTree

List of usage examples for com.fasterxml.jackson.core JsonParser readValueAsTree

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonParser readValueAsTree.

Prototype

@SuppressWarnings("unchecked")
public <T extends TreeNode> T readValueAsTree() throws IOException, JsonProcessingException 

Source Link

Document

Method to deserialize JSON content into equivalent "tree model", represented by root TreeNode of resulting model.

Usage

From source file:org.jongo.marshall.jackson.oid.ObjectIdDeserializer.java

@Override
public Object deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    TreeNode treeNode = jp.readValueAsTree();
    JsonNode oid = ((JsonNode) treeNode).get(MONGO_QUERY_OID);
    if (fieldIsObjectId) {
        if (oid != null) {
            return new ObjectId(oid.asText());
        } else {/*from  w  w w  .  j  ava2s  . co m*/
            return new ObjectId(((JsonNode) treeNode).asText());
        }
    } else {
        if (oid != null) {
            return oid.asText();
        } else {
            return ((JsonNode) treeNode).asText();
        }
    }
}

From source file:org.thingsplode.synapse.serializers.jackson.adapters.HttpResponseStatusDeserializer.java

@Override
public HttpResponseStatus deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonNode node = jp.readValueAsTree();
    return HttpResponseStatus.valueOf(node.asInt());
}

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 {/*from  w  w  w  . j  a va  2 s . co  m*/
            return jp.getCodec().treeToValue(node, resourceType);
        }
    }
    return null;
}

From source file:org.jmingo.mapping.convert.mongo.type.deserialize.MongoDateDeserializer.java

/**
 * {@inheritDoc}/*from   w  ww. j  av a  2  s  .co m*/
 */
@Override
public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonNode tree = jp.readValueAsTree();
    if (tree.isPojo()) {
        POJONode pojoNode = (POJONode) tree;
        Object pojo = pojoNode.getPojo();

        if (pojo instanceof Date) {
            return (Date) pojoNode.getPojo();
        } else {
            throw new RuntimeException("unsupported date type, expected: " + Date.class.getName());
        }
    }
    String stringDate = tree.asText();
    StdDateFormat stdDateFormat = new StdDateFormat();
    try {
        return stdDateFormat.parse(stringDate);
    } catch (ParseException e) {
        throw Throwables.propagate(e);
    }

}

From source file:com.github.jonpeterson.jackson.module.interceptor.JsonInterceptingDeserializer.java

@Override
public T deserialize(JsonParser parser, DeserializationContext context) throws IOException {
    JsonNode jsonNode = parser.readValueAsTree();

    for (JsonInterceptor interceptor : interceptors)
        jsonNode = interceptor.intercept(jsonNode, context.getNodeFactory());

    JsonParser postInterceptionParser = new TreeTraversingParser(jsonNode, parser.getCodec());
    postInterceptionParser.nextToken();//from ww w .ja v  a 2  s . c  om
    return delegate.deserialize(postInterceptionParser, context);
}

From source file:org.thingsplode.synapse.serializers.jackson.adapters.MediaTypeDeserializer.java

@Override
public MediaType deserialize(JsonParser p, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonNode node = p.readValueAsTree();
    JsonNode mTypeNode = node.get("media_type");
    if (mTypeNode == null) {
        mTypeNode = node.get("content_type");
    }//from w w w. j a  v a2 s .  co  m
    if (mTypeNode == null || Util.isEmpty(mTypeNode.asText())) {
        return null;
    } else {
        return new MediaType(mTypeNode.asText());
    }
}

From source file:fi.hsl.parkandride.front.geojson.GeojsonDeserializer.java

@Override
public T deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
    try {/* ww w  .j  a v a 2s.c  om*/
        return jsonMapper.fromJson(jp.readValueAsTree().toString(), type);
    } catch (JsonException e) {
        throw new JsonMappingException(e.getMessage(), jp.getCurrentLocation(), e.getCause());
    }
}

From source file:com.microsoft.azure.serializer.CloudErrorDeserializer.java

@Override
public CloudError deserialize(JsonParser p, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonNode topNode = p.readValueAsTree();
    if (topNode == null) {
        return null;
    }//w  w w.  ja v  a  2s.  c  o  m
    JsonNode errorNode = topNode.get("error");
    if (errorNode == null) {
        return null;
    }
    JsonParser parser = new JsonFactory().createParser(errorNode.toString());
    parser.setCodec(mapper);
    return parser.readValueAs(CloudError.class);
}

From source file:org.agorava.twitter.jackson.LocalTrendsDeserializer.java

@Override
public LocalTrendsHolder deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonNode tree = jp.readValueAsTree();
    Iterator<JsonNode> dayIt = tree.iterator();
    if (dayIt.hasNext()) {
        JsonNode day = dayIt.next();/*from   w w  w  .ja v a 2  s  .co  m*/
        Date createdAt = toDate(day.get("created_at").asText());
        JsonNode trendNodes = day.get("trends");
        List<Trend> trends = new ArrayList<Trend>();
        for (Iterator<JsonNode> trendsIt = trendNodes.iterator(); trendsIt.hasNext();) {
            JsonNode trendNode = trendsIt.next();
            trends.add(new Trend(trendNode.get("name").asText(), trendNode.get("query").textValue()));
        }
        jp.skipChildren();
        return new LocalTrendsHolder(new Trends(createdAt, trends));
    }

    throw ctxt.mappingException(LocalTrendsHolder.class);
}

From source file:org.soulwing.prospecto.jackson.ViewDeserializer.java

@Override
public View deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
        throws IOException, JsonProcessingException {

    final JsonNode tree = jsonParser.readValueAsTree();
    final ObjectMapper mapper = new ObjectMapper();
    final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    mapper.writeValue(outputStream, tree);

    final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
    return readerFactory.newReader(inputStream).readView();
}