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

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

Introduction

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

Prototype

public abstract JsonToken nextToken() throws IOException, JsonParseException;

Source Link

Document

Main iteration method, which will advance stream enough to determine type of the next token, if any.

Usage

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

public ClientCredential jsonToClientCredential(JsonParser jp) throws ParseException, IOException {
    ClientCredential.Builder builder = ClientCredential.builder();

    while (true) {
        JsonToken token = jp.nextToken();
        if (JsonToken.END_OBJECT.equals(token)) {
            // bail out
            break;
        }/*from  w  w w .j a v  a 2s.co  m*/

        if (JsonToken.FIELD_NAME.equals(token) && "appId".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildAppId(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "grants".equals(jp.getCurrentName())) {
            token = jp.nextToken();
            if (!JsonToken.START_ARRAY.equals(token)) {
                // bail out
                throw new ParseException("expected ARRAY after grants");
            }
            Set<String> grants = new HashSet<>();

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

        } else 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");
            }
            Set<String> scopes = new HashSet<>();

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

        } else if (JsonToken.FIELD_NAME.equals(token) && "redirectUri".equals(jp.getCurrentName())) {
            jp.nextToken();
            String uri = jp.getText();

            // verify uri by uri regex
            Pattern emailPattern = Pattern.compile(URI_PATTERN);
            if (!emailPattern.matcher(uri).matches()) {
                // bail out
                throw new ParseException("uri is not valid");
            }
            builder.buildRedirectUri(uri);
        } else if (JsonToken.FIELD_NAME.equals(token) && "clientId".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildClientId(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "clientSecret".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildClientSecret(jp.getText());
        }
    }
    return builder.buildAll();
}

From source file:com.netflix.spectator.tdigest.Json.java

private TDigestMeasurement decode(JsonParser parser) throws IOException {
    expect(parser, JsonToken.START_OBJECT);
    require("name".equals(parser.nextFieldName()), "expected name");
    Id id = registry.createId(parser.nextTextValue());
    while (parser.nextToken() == JsonToken.FIELD_NAME) {
        id = id.withTag(parser.getText(), parser.nextTextValue());
    }//from   w ww  . j a  v  a 2 s  .c o m
    long t = parser.nextLongValue(-1L);
    expect(parser, JsonToken.VALUE_EMBEDDED_OBJECT);
    TDigest v = AVLTreeDigest.fromBytes(ByteBuffer.wrap(parser.getBinaryValue()));
    expect(parser, JsonToken.END_ARRAY);
    return new TDigestMeasurement(id, t, v);
}

From source file:internal.product.ProductImportResource.java

@POST
@Produces(MediaType.APPLICATION_JSON)//  w w  w . j ava2  s  .  c  o m
@Path("/batch")
public Response batch(InputStream batch, @Context HttpServletRequest request) {
    try {
        JsonParser parser = jfactory.createParser(batch);
        while (parser.nextToken() != JsonToken.END_OBJECT) {
            System.out.println(parser.getCurrentToken());

        }

    } catch (IOException e) {
        return Response.status(Status.INTERNAL_SERVER_ERROR).entity(UTF8.encode(e.toString())).build();
    }
    return Response.status(Status.OK).entity(UTF8.encode("Hello world:")).build();
}

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;
        }/*  w  ww  .  jav a  2  s. com*/
        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:com.netflix.hollow.jsonadapter.discover.HollowJsonAdapterSchemaDiscoverer.java

private void discoverSchemas(JsonParser parser, HollowDiscoveredSchema schema) throws IOException {
    JsonToken token = parser.nextToken();

    while (token != JsonToken.END_OBJECT) {
        String fieldName = parser.getCurrentName();
        //if (isDebug) parser = print("discoverSchemas fieldName=" + fieldName, token, parser);

        discoverSchemaField(parser, token, fieldName, schema);
        token = parser.nextToken();// w ww .  j  ava  2s . c om
    }
}

From source file:bamboo.trove.common.BaseWarcDomainManager.java

private void parseJson(WarcProgressManager warc, InputStream in) throws IOException {
    Timer.Context ctx = bambooParseTimer.time();
    JsonParser json = createParser(in);
    JsonToken token = json.nextToken();
    if (token == null) {
        ctx.stop();/*w w  w  .  j  ava2  s .c om*/
        throw new IllegalArgumentException("No JSON data found in response");
    }
    if (!JsonToken.START_ARRAY.equals(token)) {
        ctx.stop();
        throw new IllegalArgumentException("JSON response is not an array");
    }

    try {
        long warcSize = 0;
        while (json.nextToken() == JsonToken.START_OBJECT) {
            Document d = objectMapper.readValue(json, Document.class);
            warcSize += d.getContentLength();
            // Track it by batch
            IndexerDocument doc = warc.add(d);
            // Enqueue it for work
            filterQueue.offer(doc);
        }
        warcDocCountHistogram.update(warc.size());
        warcSizeHistogram.update(warcSize);
        warc.setBatchBytes(warcSize);

    } finally {
        ctx.stop();
    }
}

From source file:com.netflix.hollow.jsonadapter.HollowJsonAdapterPrimaryKeyFinder.java

private void addObject(JsonParser parser, HollowObjectSchema schema, StringBuilder currentFieldPath)
        throws IOException {
    JsonToken token = parser.nextToken();

    String fieldName = null;//from   w w w  . j  a v a 2s  .  co  m
    try {
        while (token != JsonToken.END_OBJECT) {
            fieldName = parser.getCurrentName();
            addObjectField(parser, token, schema, fieldName, currentFieldPath);
            token = parser.nextToken();
        }
    } catch (Exception ex) {
        throw new IOException(
                "Failed to parse field=" + fieldName + ", schema=" + schema.getName() + ", token=" + token, ex);
    }
}

From source file:net.floodlightcontroller.loadbalancer.MembersResource.java

protected LBMember jsonToMember(String json) throws IOException {
    MappingJsonFactory f = new MappingJsonFactory();
    JsonParser jp;
    LBMember member = new LBMember();

    try {/*from  ww w  . j  a  v a  2s . c o m*/
        jp = f.createJsonParser(json);
    } catch (JsonParseException e) {
        throw new IOException(e);
    }

    jp.nextToken();
    if (jp.getCurrentToken() != JsonToken.START_OBJECT) {
        throw new IOException("Expected START_OBJECT");
    }

    while (jp.nextToken() != JsonToken.END_OBJECT) {
        if (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
            throw new IOException("Expected FIELD_NAME");
        }

        String n = jp.getCurrentName();
        jp.nextToken();
        if (jp.getText().equals(""))
            continue;
        if (n.equals("id")) {
            member.id = jp.getText();
            continue;
        } else if (n.equals("address")) {
            member.address = IPv4.toIPv4Address(jp.getText());
            continue;
        } else if (n.equals("port")) {
            member.port = Short.parseShort(jp.getText());
            continue;
        } else if (n.equals("connection_limit")) {
            member.connectionLimit = Integer.parseInt(jp.getText());
            continue;
        } else if (n.equals("admin_state")) {
            member.adminState = Short.parseShort(jp.getText());
            continue;
        } else if (n.equals("status")) {
            member.status = Short.parseShort(jp.getText());
            continue;
        } else if (n.equals("pool_id")) {
            member.poolId = jp.getText();
            continue;
        }

        log.warn("Unrecognized field {} in " + "parsing Members", jp.getText());
    }
    jp.close();

    return member;
}

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;
        }/*from  w  w  w  .j  av  a 2  s. co m*/

        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;
}