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.zalando.logbook.JsonHttpLogFormatter.java

private String compactJson(final String json) throws IOException {
    if (isAlreadyCompacted(json)) {
        return json;
    }//from w  w w  . j  av a 2  s .c  o  m

    final StringWriter output = new StringWriter();
    final JsonFactory factory = mapper.getFactory();
    final JsonParser parser = factory.createParser(json);

    final JsonGenerator generator = factory.createGenerator(output);

    // https://github.com/jacoco/jacoco/wiki/FilteringOptions
    //noinspection TryFinallyCanBeTryWithResources - jacoco can't handle try-with correctly
    try {
        while (parser.nextToken() != null) {
            generator.copyCurrentEvent(parser);
        }
    } finally {
        generator.close();
    }

    return output.toString();
}

From source file:org.oscim.utils.overpass.OverpassAPIReader.java

public void parse(InputStream in) throws IOException {
    JsonFactory jsonFactory = new JsonFactory();
    try {/*from   w w  w  .j a  v  a  2s  .  c  o m*/
        JsonParser jp = jsonFactory.createJsonParser(in);

        JsonToken t;
        while ((t = jp.nextToken()) != null) {
            if (t == JsonToken.START_OBJECT) {
                jp.nextToken();

                String name = jp.getCurrentName();
                jp.nextToken();

                if ("type".equals(name)) {
                    String type = jp.getText();

                    if ("node".equals(type))
                        parseNode(jp);

                    else if ("way".equals(type))
                        parseWay(jp);

                    else if ("relation".equals(type))
                        parseRelation(jp);
                }
            }
        }
    } catch (JsonParseException e) {
        e.printStackTrace();
    }
}

From source file:org.emfjson.jackson.streaming.StreamReader.java

@SuppressWarnings("unchecked")
protected JsonToken parseEntry(JsonParser parser, EReference reference, EObject owner) throws IOException {

    EList<EObject> values = null;//from   w w w.  ja v a 2s  . c  o m
    if (reference.isMany()) {
        values = (EList<EObject>) owner.eGet(reference);
    }

    while (parser.nextToken() != JsonToken.END_OBJECT) {
        final String field = parser.getCurrentName();
        final String value = parser.nextTextValue();

        if (reference.isMany() && values != null) {
            values.add(createEntry(field, value));
        } else {
            owner.eSet(reference, createEntry(field, value));
        }
    }

    return parser.getCurrentToken();
}

From source file:com.msopentech.odatajclient.engine.metadata.edm.EntitySetDeserializer.java

@Override
protected AbstractEntitySet doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    final AbstractEntitySet entitySet = ODataVersion.V3 == client.getWorkingVersion()
            ? new com.msopentech.odatajclient.engine.metadata.edm.v3.EntitySet()
            : new com.msopentech.odatajclient.engine.metadata.edm.v4.EntitySet();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Name".equals(jp.getCurrentName())) {
                entitySet.setName(jp.nextTextValue());
            } else if ("EntityType".equals(jp.getCurrentName())) {
                entitySet.setEntityType(jp.nextTextValue());
            } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
                ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntitySet) entitySet)
                        .setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
                jp.nextToken();//w w  w.ja  va2 s . c  o  m
                ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntitySet) entitySet)
                        .getNavigationPropertyBindings()
                        .add(jp.getCodec().readValue(jp, NavigationPropertyBinding.class));
            } else if ("Annotation".equals(jp.getCurrentName())) {
                jp.nextToken();
                ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntitySet) entitySet)
                        .setAnnotation(jp.getCodec().readValue(jp, Annotation.class));
            }
        }
    }

    return entitySet;
}

From source file:com.github.fabioticconi.roguelite.systems.BootstrapSystem.java

public void loadBody(final String filename, final EntityEdit edit) throws IOException {
    final YAMLFactory factory = new YAMLFactory();
    final JsonParser parser = factory.createParser(new File(filename));

    int str = 0, agi = 0, con = 0, skin = 0, sight = 0;
    boolean herbivore = false, carnivore = false;

    parser.nextToken(); // START_OBJECT

    while (parser.nextToken() != null) {
        final String name = parser.getCurrentName();

        if (name == null)
            break;

        parser.nextToken(); // get in value

        System.out.println(name);

        if (name.equals("strength")) {
            str = parser.getIntValue();//from  w  w  w  .  j a v a 2s .  c  o  m
            edit.create(Strength.class).value = Util.ensureRange(str, -2, 2);
        } else if (name.equals("agility")) {
            agi = parser.getIntValue();
            edit.create(Agility.class).value = Util.ensureRange(agi, -2, 2);
        } else if (name.equals("constitution")) {
            con = parser.getIntValue();
            edit.create(Constitution.class).value = Util.ensureRange(con, -2, 2);
        } else if (name.equals("skin")) {
            skin = parser.getIntValue();
            edit.create(Skin.class).value = Util.ensureRange(skin, -2, 2);
        } else if (name.equals("sight")) {
            sight = parser.getIntValue();
            edit.create(Sight.class).value = Util.ensureRange(sight, 1, 18);
        } else if (name.equals("herbivore")) {
            herbivore = parser.getBooleanValue();

            if (herbivore)
                edit.create(Herbivore.class);
        } else if (name.equals("carnivore")) {
            carnivore = parser.getBooleanValue();

            if (carnivore)
                edit.create(Carnivore.class);
        }
    }

    // TODO check if neither herbivore nor carnivore? player is currently as such, for testing

    // Secondary Attributes
    final int size = Math.round((con - agi) / 2f);
    edit.create(Size.class).value = size;
    edit.create(Stamina.class).value = 5 + str + con;
    edit.create(Speed.class).value = (con - str - agi + 6) / 12f;

    // Tertiary Attributes
    edit.create(Hunger.class).value = (size / 2f) + 2f;
}

From source file:com.adobe.communities.ugc.migration.importer.MessagesImportServlet.java

protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response)
        throws ServletException, IOException {

    final ResourceResolver resolver = request.getResourceResolver();

    UGCImportHelper.checkUserPrivileges(resolver, rrf);

    // first check to see if the caller provided an explicit selector for our MessagingOperationsService
    final RequestParameter serviceSelector = request.getRequestParameter("serviceSelector");
    // if no serviceSelector parameter was provided, we'll try going with whatever we get through the Reference
    if (null != serviceSelector && !serviceSelector.getString().equals("")) {
        // make sure the messagingServiceTracker was created by the activate method
        if (null == messagingServiceTracker) {
            throw new ServletException("Cannot use messagingServiceTracker");
        }//from  w w w.  java 2 s . c  om
        // search for the MessagingOperationsService corresponding to the provided selector
        messagingService = messagingServiceTracker.getService(serviceSelector.getString());
        if (null == messagingService) {
            throw new ServletException(
                    "MessagingOperationsService for selector " + serviceSelector.getString() + "was not found");
        }
    }
    // finally get the uploaded file
    final RequestParameter[] fileRequestParameters = request.getRequestParameters("file");
    if (fileRequestParameters != null && fileRequestParameters.length > 0
            && !fileRequestParameters[0].isFormField()) {

        final Map<String, Object> messageModifiers = new HashMap<String, Object>();
        if (fileRequestParameters[0].getFileName().endsWith(".json")) {
            // if upload is a single json file...
            final InputStream inputStream = fileRequestParameters[0].getInputStream();
            final JsonParser jsonParser = new JsonFactory().createParser(inputStream);
            jsonParser.nextToken(); // get the first token
            importMessages(request, jsonParser, messageModifiers);
        } else if (fileRequestParameters[0].getFileName().endsWith(".zip")) {
            ZipInputStream zipInputStream;
            try {
                zipInputStream = new ZipInputStream(fileRequestParameters[0].getInputStream());
            } catch (IOException e) {
                throw new ServletException("Could not open zip archive");
            }
            ZipEntry zipEntry = zipInputStream.getNextEntry();
            while (zipEntry != null) {
                final JsonParser jsonParser = new JsonFactory().createParser(zipInputStream);
                jsonParser.nextToken(); // get the first token
                importMessages(request, jsonParser, messageModifiers);
                zipInputStream.closeEntry();
                zipEntry = zipInputStream.getNextEntry();
            }
            zipInputStream.close();
        } else {
            throw new ServletException("Unrecognized file input type");
        }
        if (!messageModifiers.isEmpty()) {
            try {
                Thread.sleep(3000); //wait 3 seconds to allow the messages to be indexed by solr for search
            } catch (final InterruptedException e) {
                // do nothing.
            }
            updateMessageDetails(request, messageModifiers);
        }
    } else {
        throw new ServletException("No file provided for UGC data");
    }
}

From source file:com.netflix.hollow.jsonadapter.discover.HollowJsonAdapterSchemaDiscoverer.java

@Override
protected int processRecord(JsonParser parser) throws IOException {
    if (isDebug)//from  w  w w  .j a va2  s.co m
        System.out.println("\nProcessRecord: " + typeName);
    final HollowDiscoveredSchema schema = discoveredSchema(typeName, DiscoveredSchemaType.OBJECT, null);
    parser.nextToken();
    discoverSchemas(parser, schema);
    return -1;
}

From source file:com.msopentech.odatajclient.engine.metadata.edm.EnumTypeDeserializer.java

@Override
protected AbstractEnumType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    final AbstractEnumType enumType = ODataVersion.V3 == client.getWorkingVersion()
            ? new com.msopentech.odatajclient.engine.metadata.edm.v3.EnumType()
            : new com.msopentech.odatajclient.engine.metadata.edm.v4.EnumType();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Name".equals(jp.getCurrentName())) {
                enumType.setName(jp.nextTextValue());
            } else if ("UnderlyingType".equals(jp.getCurrentName())) {
                enumType.setUnderlyingType(jp.nextTextValue());
            } else if ("IsFlags".equals(jp.getCurrentName())) {
                enumType.setFlags(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("Member".equals(jp.getCurrentName())) {
                jp.nextToken();// w w  w. j a  v a  2  s . c om
                if (enumType instanceof com.msopentech.odatajclient.engine.metadata.edm.v3.EnumType) {
                    ((com.msopentech.odatajclient.engine.metadata.edm.v3.EnumType) enumType).getMembers()
                            .add(jp.getCodec().readValue(jp,
                                    com.msopentech.odatajclient.engine.metadata.edm.v3.Member.class));
                } else {
                    ((com.msopentech.odatajclient.engine.metadata.edm.v4.EnumType) enumType).getMembers()
                            .add(jp.getCodec().readValue(jp,
                                    com.msopentech.odatajclient.engine.metadata.edm.v4.Member.class));
                }
            } else if ("Annotation".equals(jp.getCurrentName())) {
                jp.nextToken();
                ((com.msopentech.odatajclient.engine.metadata.edm.v4.EnumType) enumType)
                        .setAnnotation(jp.getCodec().readValue(jp, Annotation.class));
            }
        }
    }

    return enumType;
}

From source file:data.DefaultExchanger.java

private void importSequence(String dbName, JsonParser parser, JdbcTemplate jdbcTemplate) throws IOException {
    if (hasSequence()) {
        JsonToken fieldNameToken = parser.nextToken();
        if (fieldNameToken == JsonToken.FIELD_NAME) {
            String fieldName = parser.getCurrentName();
            if (fieldName.equalsIgnoreCase(sequenceName())) {
                JsonToken current = parser.nextToken();
                if (current == JsonToken.VALUE_NUMBER_INT) {
                    long sequenceValue = parser.getNumberValue().longValue();
                    if (dbName.equals("MySQL")) {
                        jdbcTemplate// w  w  w .ja  v  a  2  s.c  o  m
                                .execute("ALTER TABLE " + getTable() + " AUTO_INCREMENT = " + sequenceValue);
                    } else if (dbName.equals("H2")) {
                        jdbcTemplate
                                .execute("ALTER SEQUENCE " + sequenceName() + " RESTART WITH " + sequenceValue);
                    }
                }
            }
        }
        play.Logger.info("imported sequence {{}}", sequenceName());
    }
}

From source file:io.protostuff.JsonInput.java

private <T> int readFieldNumber(final Schema<T> schema, final JsonParser parser) throws IOException {
    for (;;) {//from   w ww .  j  a v a2  s  .  c  o  m
        if (parser.nextToken() == END_OBJECT)
            return 0;

        if (parser.getCurrentToken() != FIELD_NAME) {
            throw new JsonInputException("Expected token: $field: but was " + parser.getCurrentToken()
                    + " on message " + schema.messageFullName());
        }

        final String name = parser.getCurrentName();

        // move to the next token
        if (parser.nextToken() == START_ARRAY) {
            JsonToken jt = parser.nextToken();

            // if empty array, read the next field
            if (jt == END_ARRAY)
                continue;

            if (jt == VALUE_NULL) {
                // skip null elements
                while (VALUE_NULL == (jt = parser.nextToken()))
                    ;

                // all elements were null.
                if (jt == END_ARRAY)
                    continue;
            }

            final int number = numeric ? Integer.parseInt(name) : schema.getFieldNumber(name);

            if (number == 0) {
                // unknown field
                if (parser.getCurrentToken().isScalarValue()) {
                    // skip the scalar elements
                    while (parser.nextToken() != END_ARRAY)
                        ;

                    continue;
                }

                throw new JsonInputException(
                        "Unknown field: " + name + " on message " + schema.messageFullName());
            }

            lastRepeated = true;
            lastName = name;
            lastNumber = number;

            return number;
        }

        // skip null value
        if (parser.getCurrentToken() == VALUE_NULL)
            continue;

        final int number = numeric ? Integer.parseInt(name) : schema.getFieldNumber(name);

        if (number == 0) {
            // we can skip this unknown field
            if (parser.getCurrentToken().isScalarValue())
                continue;

            throw new JsonInputException("Unknown field: " + name + " on message " + schema.messageFullName());
        }

        lastName = name;
        lastNumber = number;

        return number;
    }
}