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:org.springframework.security.jackson2.UsernamePasswordAuthenticationTokenDeserializer.java

/**
 * This method construct {@link UsernamePasswordAuthenticationToken} object from serialized json.
 *//*from ww  w. jav  a  2  s  .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;
}

From source file:io.github.azige.moebooruviewer.MoebooruAPITest.java

@Test
public void testListPostsOrder() throws IOException {
    String resourceName = "/postV2_limit100.json";
    byte[] resourceBytes;
    {//from   ww  w  . j a v a2  s. c  o m
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        try (InputStream input = getClass().getResourceAsStream(resourceName)) {
            IOUtils.copy(input, output);
        }
        resourceBytes = output.toByteArray();
    }
    when(netIO.download("http://yande.re/post.json?api_version=2&include_pools=1&page=1&limit=100&tags="))
            .thenReturn(resourceBytes);

    List<Post> posts = mapi.listPosts(1, 100);
    ObjectMapper mapper = new ObjectMapper();
    JsonNode postNode = mapper.readTree(getClass().getResourceAsStream(resourceName)).get("posts");

    List<Integer> originalIdList = StreamSupport.stream(postNode.spliterator(), false)
            .map(node -> node.get("id").asInt()).collect(Collectors.toList());
    List<Integer> convertedIdList = posts.stream().map(post -> post.getId()).collect(Collectors.toList());
    assertThat(convertedIdList, is(equalTo(originalIdList)));
}

From source file:com.ericsson.eiffel.remrem.publish.config.GsonHttpMessageConverterWithValidate.java

@Override
protected Object readInternal(Type resolvedType, Reader reader) throws Exception {
    try {//from w w  w . ja  v a 2 s.com
        final String json = IOUtils.toString(reader);
        // do the actual validation
        final ObjectMapper mapper = new ObjectMapper();
        mapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY);
        mapper.readTree(json);
        return this.gson.fromJson(json, resolvedType);
    } catch (JsonParseException ex) {
        throw new HttpMessageNotReadableException("Could not read JSON: " + ex.getMessage(), ex);
    }

}

From source file:org.caratarse.auth.cas.support.CaratarseAuthClientAuthenticationHandler.java

protected final boolean authenticateUsernamePasswordInternal(final UsernamePasswordCredentials credentials)
        throws AuthenticationException {
    final String transformedUsername = getPrincipalNameTransformer().transform(credentials.getUsername());
    final String encryptedPassword = getPasswordEncoder()
            .encode(credentials.getPassword() + (isWithSalt() ? "{" + transformedUsername + "}" : ""));

    ApiResponse response;/*from w  w w.  j a  va2  s  .  com*/
    JsonNode userTree;
    try {
        response = caratarseAuthClient.getUserByUsername(transformedUsername);

        if ("404".equals(response.getCode())) {
            throw new UnknownUsernameAuthenticationException();
        }

        ObjectMapper m = new ObjectMapper();
        JsonNode rootTree = m.readTree(response.getContent());
        userTree = rootTree.get("_embedded").get("users").get(0);
        if (userTree == null) {
            throw new UnknownUsernameAuthenticationException();
        }
    } catch (Exception ex) {
        throw new AuthenticationException("Authentication failed for user " + transformedUsername, ex) {
        };
    }

    if (!userIsEnabled(userTree)) {
        throw new BlockedCredentialsAuthenticationException();
    }

    if (!passwordMatches(userTree, encryptedPassword)) {
        throw new BadPasswordAuthenticationException();
    }

    // update last login

    return true;
}

From source file:org.onosproject.north.aaa.api.parser.impl.RestAccessParser.java

@Override
public Set<RestAccess> parseJson(InputStream stream) throws IOException, ParseException {
    // begin parsing JSON to Application class
    ObjectMapper mapper = new ObjectMapper();
    JsonNode jsonNode = mapper.readTree(stream);
    JsonParser jp = jsonNode.traverse();
    Set<RestAccess> restAccessSet = new HashSet<>();

    // continue parsing the token till the end of input is reached
    while (!jp.isClosed()) {
        // get the token
        JsonToken token = jp.nextToken();
        // if its the last token then we are done
        if (token == null) {
            break;
        }// w w w .  ja  va  2  s . c  om

        if (JsonToken.FIELD_NAME.equals(token) && "accesses".equals(jp.getCurrentName())) {
            token = jp.nextToken();
            if (!JsonToken.START_ARRAY.equals(token)) {
                // bail out
                throw new ParseException("expected ARRAY after accesses");
            }

            while (true) {
                token = jp.nextToken();
                if (JsonToken.END_ARRAY.equals(token)) {
                    // bail out
                    break;
                }

                if (JsonToken.START_OBJECT.equals(token)) {
                    RestAccess restAccess = jsonToRestAccess(jp);
                    restAccessSet.add(restAccess);
                }
            }
        }
    }
    return restAccessSet;
}

From source file:com.ericsson.eiffel.remrem.generate.config.GsonHttpMessageConverterWithValidate.java

@Override
protected Object readInternal(Type resolvedType, Reader reader) throws Exception {
    try {/*from   w  ww .  j  av  a 2s. c o m*/
        final String json = IOUtils.toString(reader);
        // do the actual validation
        final ObjectMapper mapper = new ObjectMapper();
        mapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY);
        mapper.readTree(json);
        return this.gson.fromJson(json, resolvedType);
    } catch (JsonParseException ex) {
        throw new HttpMessageNotReadableException("Could not read JSON: " + ex.getMessage(), ex);
    }
}

From source file:org.onosproject.north.aaa.api.parser.impl.ScopeParser.java

@Override
public Set<Scope> parseJson(InputStream stream) throws IOException, ParseException {
    // begin parsing JSON to Application class
    ObjectMapper mapper = new ObjectMapper();
    JsonNode jsonNode = mapper.readTree(stream);
    JsonParser jp = jsonNode.traverse();
    Set<Scope> scopeSet = new HashSet<>();

    // continue parsing the token till the end of input is reached
    while (!jp.isClosed()) {
        // get the token
        JsonToken token = jp.nextToken();
        // if its the last token then we are done
        if (token == null) {
            break;
        }/*from   w w  w . ja  va2  s. co m*/
        if (JsonToken.FIELD_NAME.equals(token) && "scopes".equals(jp.getCurrentName())) {
            token = jp.nextToken();
            if (!JsonToken.START_ARRAY.equals(token)) {
                // bail out
                throw new ParseException("expected ARRAY after scopes");
            }

            while (true) {
                token = jp.nextToken();
                if (JsonToken.END_ARRAY.equals(token)) {
                    // bail out
                    break;
                }
                if (JsonToken.START_OBJECT.equals(token)) {
                    Scope scope = jsonToScope(jp);
                    scopeSet.add(scope);
                }
            }
        }
    }
    return scopeSet;
}

From source file:acromusashi.stream.example.ml.client.KMeansDrpcClient.java

/**
 * KMeans??DRPC???LOF??// w  w w  .j a  v  a  2  s  . c  o m
 * 
 * @param drpcHost DRPC
 * @param drpcPort DRPC?
 * @param drpcFunction ????
 * @param kmeansData KMeans
 * @return KMeans?
 * @throws DRPCExecutionException DRPC
 * @throws TException DRPC
 * @throws IOException ?
 */
public String sendRequest(String drpcHost, int drpcPort, String drpcFunction, String kmeansData)
        throws TException, DRPCExecutionException, IOException {
    DRPCClient client = new DRPCClient(drpcHost, drpcPort);
    String drpcResult = client.execute(drpcFunction, kmeansData);

    // ?????????
    // [["0.3230647,0.4288709,0.2918048,0.7904559,5",
    // "KmeansPoint[label=<null>,dataPoint={0.3230647,0.4288709,0.2918048,0.7904559,5.0}]",
    // "{\"dataPoint\":[0.3230647,0.4288709,0.2918048,0.7904559,5.0],\"centroidIndex\":2,
    // \"centroid\":[0.49254449862586597,0.29060293775519647,0.19902678114457303,0.7925079800808319,5.0],\"distance\":0.23759924945376112}"]]

    ObjectMapper mapper = new ObjectMapper();
    JsonNode baseNode = mapper.readTree(drpcResult);
    String kmeanResultStr = baseNode.get(0).get(2).asText();
    JsonNode kmeanResultTree = mapper.readTree(kmeanResultStr);
    return kmeanResultTree.toString();
}

From source file:com.github.brandtg.stl.PlotTest.java

@Test
public void testPlot() throws Exception {
    final ObjectMapper objectMapper = new ObjectMapper();
    final JsonNode tree = objectMapper
            .readTree(new File(this.getClass().getResource("/sample-timeseries.json").getFile()));
    final int n = tree.get("times").size();
    final double[] ts = new double[n];
    final double[] ys = new double[n];

    for (int i = 0; i < n; i++) {
        ts[i] = tree.get("times").get(i).asDouble();
        ys[i] = tree.get("series").get(i).asDouble();
    }//w  w w.  j  a v  a  2s  .  c  o  m

    final StlDecomposition stl = new StlDecomposition(12);
    final StlResult res = stl.decompose(ts, ys);

    final File output = new File("seasonal.png");
    final File hourly = new File("stl-hourly.png");

    output.deleteOnExit();
    hourly.deleteOnExit();

    StlPlotter.plot(res, "New Title", Hour.class, hourly);
    StlPlotter.plot(res, output);
    StlPlotter.plot(res);

    Assert.assertTrue(output.exists());
    Assert.assertTrue(hourly.exists());

    final File exists = new File("stl-decomposition.png");
    exists.deleteOnExit();

    StlPlotter.plot(res, "Test Title");

    Assert.assertTrue(exists.exists());
}

From source file:org.onosproject.north.aaa.api.parser.impl.ApplicationParser.java

@Override
public Set<Application> parseJson(InputStream stream) throws IOException, ParseException {
    ObjectMapper mapper = new ObjectMapper();
    JsonNode jsonNode = mapper.readTree(stream);
    JsonParser jp = jsonNode.traverse();
    Set<Application> applicationSet = new HashSet<>();

    // continue parsing the token till the end of input is reached
    while (!jp.isClosed()) {
        // get the token
        JsonToken token = jp.nextToken();
        // if its the last token then we are done
        if (token == null) {
            break;
        }//from   www.ja v a  2s. c o m

        if (JsonToken.FIELD_NAME.equals(token) && "applications".equals(jp.getCurrentName())) {
            token = jp.nextToken();
            if (!JsonToken.START_ARRAY.equals(token)) {
                // bail out
                throw new ParseException("expected ARRAY after applications");
            }

            while (true) {
                token = jp.nextToken();
                if (JsonToken.END_ARRAY.equals(token)) {
                    // bail out
                    break;
                }

                if (JsonToken.START_OBJECT.equals(token)) {
                    Application app = jsonToApplication(jp);
                    applicationSet.add(app);
                }
            }
        }
    }
    return applicationSet;
}