Example usage for com.fasterxml.jackson.databind ObjectMapper readTree

List of usage examples for com.fasterxml.jackson.databind ObjectMapper readTree

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind ObjectMapper readTree.

Prototype

public JsonNode readTree(URL source) throws IOException, JsonProcessingException 

Source Link

Document

Method to deserialize JSON content as tree expressed using set of JsonNode instances.

Usage

From source file:com.msopentech.odatajclient.testservice.utils.JSONUtilities.java

/**
 * {@inheritDoc }//from  ww w. ja  va  2 s  .c  o m
 */
@Override
protected NavigationLinks retrieveNavigationInfo(final String entitySetName, final InputStream is)
        throws Exception {
    final ObjectMapper mapper = new ObjectMapper();
    final ObjectNode srcNode = (ObjectNode) mapper.readTree(is);
    IOUtils.closeQuietly(is);

    final NavigationLinks links = new NavigationLinks();

    final Iterator<Map.Entry<String, JsonNode>> fieldIter = srcNode.fields();

    while (fieldIter.hasNext()) {
        final Map.Entry<String, JsonNode> field = fieldIter.next();
        if (field.getKey().endsWith(JSON_NAVIGATION_BIND_SUFFIX)) {
            final String title = field.getKey().substring(0, field.getKey().indexOf('@'));
            final List<String> hrefs = new ArrayList<String>();
            if (field.getValue().isArray()) {
                for (JsonNode href : ((ArrayNode) field.getValue())) {
                    final String uri = href.asText();
                    hrefs.add(uri.substring(uri.lastIndexOf('/') + 1));
                }
            } else {
                final String uri = field.getValue().asText();
                hrefs.add(uri.substring(uri.lastIndexOf('/') + 1));
            }

            links.addLinks(title, hrefs);
        } else if (Commons.linkInfo.get(version).exists(entitySetName, field.getKey())) {
            links.addInlines(field.getKey(), IOUtils.toInputStream(field.getValue().toString()));
        }
    }

    return links;
}

From source file:br.eti.ns.nscteapiclientexample.EmissaoCTeForm.java

private void cmdEnviarCTeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmdEnviarCTeActionPerformed
    String dadosCTe = textDadosCTe.getText();
    String tokenAcesso = txtTokenAcesso.getText();

    if (StringUtils.isBlank(dadosCTe)) {
        JOptionPane.showMessageDialog(null, "Os dados do CT-e devem ser informados");
        return;/*  ww  w . ja  v a2s.  co m*/
    }

    if (StringUtils.isBlank(tokenAcesso)) {
        JOptionPane.showMessageDialog(null, "O Token de Acesso deve ser informado");
        return;
    }

    try {

        Response respostaServidor = ApiCTeService.emitirCTe(chkEmitirEmTxt.isSelected(), tokenAcesso, dadosCTe);
        StringBuilder retornoTexto = new StringBuilder();

        retornoTexto.append("Status HTTP: ").append(respostaServidor.getStatus()).append(" - ")
                .append(respostaServidor.getStatusInfo().getReasonPhrase()).append("\n");

        String corpoDaResposta = respostaServidor.readEntity(String.class);

        try {
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode responseJson = objectMapper.readTree(corpoDaResposta);

            txtChave.setText(responseJson.get("chCTe").asText());
            txtNRec.setText(responseJson.get("retEnviCte").get("nRec").asText());
            retornoTexto.append("\n\nDados retornados pelo servidor:\n")
                    .append(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(responseJson));

        } catch (Exception e) {
            retornoTexto.append("\n\nDados retornados pelo servidor:\n").append(corpoDaResposta);
        }

        textRetornoServidor.setText(retornoTexto.toString());

    } catch (Exception e) {
        textRetornoServidor.setText(e.getMessage());
    }

}

From source file:com.vaushell.superpipes.tools.scribe.twitter.TwitterClient.java

/**
 * Read a tweet.//  ww  w  . j ava2  s. c  o m
 *
 * @param ID Tweet ID
 * @return the tweet
 * @throws IOException
 * @throws com.vaushell.superpipes.tools.scribe.OAuthException
 */
public TW_Tweet readTweet(final long ID) throws IOException, OAuthException {
    if (ID < 0) {
        throw new IllegalArgumentException();
    }

    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("[" + getClass().getSimpleName() + "] readTweet() : ID=" + ID);
    }

    final OAuthRequest request = new OAuthRequest(Verb.GET,
            "https://api.twitter.com/1.1/statuses/show.json?id=" + Long.toString(ID));

    final Response response = sendSignedRequest(request);

    final ObjectMapper mapper = new ObjectMapper();
    final JsonNode node = (JsonNode) mapper.readTree(response.getStream());

    checkErrors(response, node);

    return convertJsonToTweet(node);
}

From source file:com.vaushell.superpipes.tools.scribe.twitter.TwitterClient.java

/**
 * Retweet a tweet./*from  w  w  w.  j a v a 2  s .c  o m*/
 *
 * @param ID Tweet's ID
 * @return Retweet's ID
 * @throws IOException
 * @throws OAuthException
 */
public long retweet(final long ID) throws IOException, OAuthException {
    if (ID < 0) {
        throw new IllegalArgumentException();
    }

    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("[" + getClass().getSimpleName() + "] retweet() : ID=" + ID);
    }

    final OAuthRequest request = new OAuthRequest(Verb.POST,
            "https://api.twitter.com/1.1/statuses/retweet/" + Long.toString(ID) + ".json");

    final Response response = sendSignedRequest(request);

    final ObjectMapper mapper = new ObjectMapper();
    final JsonNode node = (JsonNode) mapper.readTree(response.getStream());

    checkErrors(response, node);

    return node.get("id").asLong();
}

From source file:com.vaushell.superpipes.tools.scribe.twitter.TwitterClient.java

/**
 * Tweet message.//from  ww w.  ja  v  a  2  s. c  om
 *
 * @param message Tweet's content
 * @return Tweet's ID
 * @throws IOException
 * @throws OAuthException
 */
public long tweet(final String message) throws IOException, OAuthException {
    if (message == null) {
        throw new IllegalArgumentException();
    }

    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("[" + getClass().getSimpleName() + "] tweet() : message=" + message);
    }

    final OAuthRequest request = new OAuthRequest(Verb.POST,
            "https://api.twitter.com/1.1/statuses/update.json");
    request.addBodyParameter("status", message);

    final Response response = sendSignedRequest(request);

    final ObjectMapper mapper = new ObjectMapper();
    final JsonNode node = (JsonNode) mapper.readTree(response.getStream());

    checkErrors(response, node);

    return node.get("id").asLong();
}

From source file:org.openmhealth.shim.runkeeper.RunkeeperShimTest.java

@Test
@SuppressWarnings("unchecked")
public void testActivityNormalize() throws IOException, ProcessingException {
    URL url = Thread.currentThread().getContextClassLoader().getResource("runkeeper-activity.json");
    assert url != null;
    InputStream inputStream = url.openStream();

    ObjectMapper objectMapper = new ObjectMapper();

    RunkeeperShim.RunkeeperDataType.ACTIVITY.getNormalizer();
    SimpleModule module = new SimpleModule();
    module.addDeserializer(ShimDataResponse.class, RunkeeperShim.RunkeeperDataType.ACTIVITY.getNormalizer());

    objectMapper.registerModule(module);

    ShimDataResponse response = objectMapper.readValue(inputStream, ShimDataResponse.class);

    assertNotNull(response);/*  w w w.  j a  v  a 2 s .c  o  m*/
    assertNotNull(response.getShim());

    Map<String, Object> map = (Map<String, Object>) response.getBody();
    assertTrue(map.containsKey(Activity.SCHEMA_ACTIVITY));

    List<Activity> activities = (List<Activity>) map.get(Activity.SCHEMA_ACTIVITY);
    assertTrue(activities != null && activities.size() == 2);

    DateTimeFormatter dateFormatter = DateTimeFormat.forPattern("EEE, d MMM yyyy HH:mm:ss")
            .withZone(DateTimeZone.UTC);

    final String START_TIME_STRING = "Wed, 6 Aug 2014 04:49:00";
    DateTime expectedStartTimeUTC = dateFormatter.parseDateTime(START_TIME_STRING);

    Activity activity = activities.get(0);
    assertEquals(activity.getDistance().getValue(), new BigDecimal(6437.3760));
    assertEquals(activity.getDistance().getUnit(), LengthUnitValue.LengthUnit.m);
    assertEquals(activity.getActivityName(), "Rowing");
    assertEquals(activity.getEffectiveTimeFrame().getTimeInterval().getStartTime(), expectedStartTimeUTC);
    assertEquals(activity.getEffectiveTimeFrame().getTimeInterval().getDuration().getUnit(),
            DurationUnitValue.DurationUnit.sec);
    assertEquals(activity.getEffectiveTimeFrame().getTimeInterval().getDuration().getValue(),
            new BigDecimal(3600d));

    /**
     * Verify that the output from runkeeper normalizer passes
     * a schema check. Per github issue #9.
     */
    final String PHYSICAL_ACTIVITY_SCHEMA = "http://www.openmhealth.org/schema/omh/clinical/physical-activity-1.0.json";

    ObjectMapper mapper = new ObjectMapper();

    final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
    final JsonSchema schema = factory.getJsonSchema(PHYSICAL_ACTIVITY_SCHEMA);

    ProcessingReport report;

    String rawJson = mapper.writeValueAsString(activity);

    report = schema.validate(mapper.readTree(rawJson));
    System.out.println(report);

    assertTrue("Expected valid result!", report.isSuccess());
}

From source file:com.vaushell.superpipes.tools.scribe.linkedin.LinkedInClient.java

/**
 * Post link./*from ww w .j ava  2 s  .co m*/
 *
 * @param message Status's message
 * @param uri Status's link
 * @param uriName Link's name
 * @param uriDescription Link's description
 * @return Status ID
 * @throws IOException
 * @throws OAuthException
 */
public String postLink(final String message, final String uri, final String uriName,
        final String uriDescription) throws IOException, OAuthException {
    if (uri == null || uri.isEmpty()) {
        throw new IllegalArgumentException();
    }

    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("[" + getClass().getSimpleName() + "] updateStatus() : message=" + message + " / uri="
                + uri + " / uriName=" + uriName + " / uriDescription=" + uriDescription);
    }

    final OAuthRequest request = new OAuthRequest(Verb.POST,
            "http://api.linkedin.com/v1/people/~/shares?format=json");

    final Element share = new Element("share");

    // Message
    if (message != null && message.length() > 0) {
        share.addContent(new Element("comment").setText(message));
    }

    // Content
    final Element content = new Element("content");

    if (uriName != null && uriName.length() > 0) {
        content.addContent(new Element("title").setText(uriName));
    }

    if (uriDescription != null && uriDescription.length() > 0) {
        content.addContent(new Element("description").setText(uriDescription));
    }

    content.addContent(new Element("submitted-url").setText(uri));

    share.addContent(content);

    // Visiblity
    final Element visiblity = new Element("visibility");
    visiblity.addContent(new Element("code").setText("anyone"));
    share.addContent(visiblity);

    final String xmlPayload = new XMLOutputter(Format.getPrettyFormat()).outputString(share);

    request.addHeader("Content-Type", "application/xml");
    request.addPayload(xmlPayload);

    final Response response = sendSignedRequest(request);

    final ObjectMapper mapper = new ObjectMapper();
    final JsonNode node = (JsonNode) mapper.readTree(response.getStream());

    checkErrors(response, node);

    return extractID(node.get("updateKey").asText());
}

From source file:com.vaushell.superpipes.tools.scribe.twitter.TwitterClient.java

private List<TW_Tweet> readTimelineImpl(final String url, final Properties properties)
        throws IOException, OAuthException {
    if (url == null || properties == null) {
        throw new IllegalArgumentException();
    }//w w  w  .ja  v  a2s  . c  o m

    final OAuthRequest request = new OAuthRequest(Verb.GET, url);
    for (final Entry<Object, Object> entry : properties.entrySet()) {
        request.addQuerystringParameter((String) entry.getKey(), (String) entry.getValue());
    }

    final Response response = sendSignedRequest(request);

    final ObjectMapper mapper = new ObjectMapper();
    final JsonNode nodes = (JsonNode) mapper.readTree(response.getStream());

    checkErrors(response, nodes);

    final List<TW_Tweet> tweets = new ArrayList<>();
    for (final JsonNode node : nodes) {
        tweets.add(convertJsonToTweet(node));
    }

    return tweets;
}

From source file:org.apache.taverna.robundle.manifest.TestManifestJSON.java

@Test
public void createBundle() throws Exception {
    // Create bundle as in Example 3 of the specification
    // http://wf4ever.github.io/ro/bundle/2013-05-21/
    try (Bundle bundle = Bundles.createBundle()) {
        Calendar createdOnCal = Calendar.getInstance(TimeZone.getTimeZone("Z"), Locale.ENGLISH);
        // "2013-03-05T17:29:03Z"
        // Remember months are 0-based in java.util.Calendar!
        createdOnCal.set(2013, 3 - 1, 5, 17, 29, 03);
        createdOnCal.set(Calendar.MILLISECOND, 0);
        FileTime createdOn = FileTime.fromMillis(createdOnCal.getTimeInMillis());
        Manifest manifest = bundle.getManifest();
        manifest.setCreatedOn(createdOn);
        Agent createdBy = new Agent("Alice W. Land");
        createdBy.setUri(URI.create("http://example.com/foaf#alice"));
        createdBy.setOrcid(URI.create("http://orcid.org/0000-0002-1825-0097"));

        manifest.setCreatedBy(createdBy);

        Path evolutionPath = bundle.getPath(".ro/evolution.ttl");
        Files.createDirectories(evolutionPath.getParent());
        Bundles.setStringValue(evolutionPath, "<manifest.json> < http://purl.org/pav/retrievedFrom> "
                + "<http://wf4ever.github.io/ro/bundle/2013-05-21/example/.ro/manifest.json> .");
        manifest.getHistory().add(evolutionPath);

        Path jpeg = bundle.getPath("folder/soup.jpeg");
        Files.createDirectory(jpeg.getParent());
        Files.createFile(jpeg);//from  ww  w. j  av a 2s.  com
        // register in manifest first
        bundle.getManifest().getAggregation(jpeg);

        URI blog = URI.create("http://example.com/blog/");
        bundle.getManifest().getAggregation(blog);

        Path readme = bundle.getPath("README.txt");
        Files.createFile(readme);
        PathMetadata readmeMeta = bundle.getManifest().getAggregation(readme);
        readmeMeta.setMediatype("text/plain");
        Agent readmeCreatedby = new Agent("Bob Builder");
        readmeCreatedby.setUri(URI.create("http://example.com/foaf#bob"));
        readmeMeta.setCreatedBy(readmeCreatedby);

        // 2013-02-12T19:37:32.939Z
        createdOnCal.set(2013, 2 - 1, 12, 19, 37, 32);
        createdOnCal.set(Calendar.MILLISECOND, 939);
        createdOn = FileTime.fromMillis(createdOnCal.getTimeInMillis());
        Files.setLastModifiedTime(readme, createdOn);
        readmeMeta.setCreatedOn(createdOn);

        PathMetadata comments = bundle.getManifest()
                .getAggregation(URI.create("http://example.com/comments.txt"));
        comments.getOrCreateBundledAs().setURI(URI.create("urn:uuid:a0cf8616-bee4-4a71-b21e-c60e6499a644"));
        comments.getOrCreateBundledAs().setFolder(bundle.getPath("/folder/"));
        comments.getOrCreateBundledAs().setFilename("external.txt");

        PathAnnotation jpegAnn = new PathAnnotation();
        jpegAnn.setAbout(jpeg);
        Path soupProps = Bundles.getAnnotations(bundle).resolve("soup-properties.ttl");
        Bundles.setStringValue(soupProps, "</folder/soup.jpeg> <http://xmlns.com/foaf/0.1/depicts> "
                + "<http://example.com/menu/tomato-soup> .");
        jpegAnn.setContent(soupProps);
        // jpegAnn.setContent(URI.create("annotations/soup-properties.ttl"));
        jpegAnn.setUri(URI.create("urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf"));
        manifest.getAnnotations().add(jpegAnn);

        PathAnnotation proxyAnn = new PathAnnotation();
        proxyAnn.setAbout(comments.getBundledAs().getURI());
        proxyAnn.setContent(URI.create("http://example.com/blog/they-aggregated-our-file"));
        manifest.getAnnotations().add(proxyAnn);

        Path metaAnn = Bundles.getAnnotations(bundle).resolve("a-meta-annotation-in-this-ro.txt");
        Bundles.setStringValue(metaAnn, "This bundle contains an annotation about /folder/soup.jpeg");

        PathAnnotation metaAnnotation = new PathAnnotation();
        metaAnnotation.setAbout(bundle.getRoot());
        metaAnnotation.getAboutList().add(URI.create("urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf"));

        metaAnnotation.setContent(metaAnn);
        manifest.getAnnotations().add(metaAnnotation);

        Path jsonPath = bundle.getManifest().writeAsJsonLD();
        ObjectMapper objectMapper = new ObjectMapper();
        String jsonStr = Bundles.getStringValue(jsonPath);
        //System.out.println(jsonStr);
        JsonNode json = objectMapper.readTree(jsonStr);
        checkManifestJson(json);
    }
}

From source file:com.vaushell.superpipes.tools.scribe.twitter.TwitterClient.java

/**
 * Delete a tweet.//from w w w . j  av  a2 s  .c om
 *
 * @param ID Tweet ID
 * @return True if successfull
 * @throws IOException
 * @throws com.vaushell.superpipes.tools.scribe.OAuthException
 */
public boolean deleteTweet(final long ID) throws IOException, OAuthException {
    if (ID < 0) {
        throw new IllegalArgumentException();
    }

    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("[" + getClass().getSimpleName() + "] deleteTweet() : ID=" + ID);
    }

    final OAuthRequest request = new OAuthRequest(Verb.POST,
            "https://api.twitter.com/1.1/statuses/destroy/" + ID + ".json");

    final Response response = sendSignedRequest(request);

    final ObjectMapper mapper = new ObjectMapper();
    final JsonNode node = (JsonNode) mapper.readTree(response.getStream());

    checkErrors(response, node);

    final JsonNode nodeID = node.get("id");
    if (nodeID == null) {
        return false;
    } else {
        return ID == nodeID.asLong();
    }
}