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:monasca.thresh.utils.StatsdMetricConsumer.java

private boolean isValidJSON(final String json) {
    boolean valid = false;
    try {//from  ww  w .  j a v  a 2s .co m
        final JsonParser parser = new ObjectMapper().getFactory().createParser(json);
        while (parser.nextToken() != null) {
        }
        valid = true;
    } catch (JsonParseException jpe) {
        valid = false;
    } catch (IOException ioe) {
        valid = false;
    }
    return valid;
}

From source file:no.ssb.jsonstat.v2.deser.DimensionDeserializer.java

@Override
public Dimension.Builder deserialize(JsonParser p, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    // Get the name first.
    String name = parseName(p, ctxt);

    if (p.getCurrentToken() == JsonToken.START_OBJECT) {
        p.nextToken();
    }//w  w w .  j  a  v a  2 s .co m

    Dimension.Builder dimension;
    dimension = Dimension.create(name);

    while (p.nextValue() != JsonToken.END_OBJECT) {
        switch (p.getCurrentName()) {
        case "category":
            parseCategory(dimension, p, ctxt);
            break;
        case "label":
            dimension.withLabel(parseLabel(p, ctxt));
            break;
        default:
            ctxt.handleUnknownProperty(p, this, Dimension.Builder.class, p.getCurrentName());
            break;
        }
    }

    return dimension;
}

From source file:msearch.filmlisten.MSFilmlisteLesen.java

public void readFilmListe(String source, final ListeFilme listeFilme, int days) {
    JsonToken jsonToken;//from  w ww  .j a  v  a 2s.c  o m
    String sender = "", thema = "";
    listeFilme.clear();
    this.notifyStart(source, PROGRESS_MAX); // fr die Progressanzeige

    if (days > 0) {
        final long maxDays = 1000L * 60L * 60L * 24L * days;
        seconds = new Date().getTime() - maxDays;
    } else {
        seconds = 0;
    }

    try {
        InputStream in = selectDecompressor(source, getInputStreamForLocation(source));
        JsonParser jp = new JsonFactory().createParser(in);
        if (jp.nextToken() != JsonToken.START_OBJECT) {
            throw new IllegalStateException("Expected data to start with an Object");
        }

        while ((jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                for (int k = 0; k < ListeFilme.MAX_ELEM; ++k) {
                    listeFilme.metaDaten[k] = jp.nextTextValue();
                }
                break;
            }
        }
        while ((jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                // sind nur die Feldbeschreibungen, brauch mer nicht
                jp.nextToken();
                break;
            }
        }
        while (!MSConfig.getStop() && (jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                DatenFilm datenFilm = new DatenFilm();
                for (int i = 0; i < DatenFilm.COLUMN_NAMES_JSON.length; ++i) {
                    //if we are in FASTAUTO mode, we dont need film descriptions.
                    //this should speed up loading on low end devices...
                    if (workMode == WorkMode.FASTAUTO) {
                        if (DatenFilm.COLUMN_NAMES_JSON[i] == DatenFilm.FILM_BESCHREIBUNG_NR
                                || DatenFilm.COLUMN_NAMES_JSON[i] == DatenFilm.FILM_WEBSEITE_NR
                                || DatenFilm.COLUMN_NAMES_JSON[i] == DatenFilm.FILM_GEO_NR) {
                            jp.nextToken();
                            continue;
                        }
                    }

                    datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] = jp.nextTextValue();
                    /// fr die Entwicklungszeit
                    if (datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] == null) {
                        datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] = "";
                    }
                }
                if (datenFilm.arr[DatenFilm.FILM_SENDER_NR].isEmpty()) {
                    datenFilm.arr[DatenFilm.FILM_SENDER_NR] = sender;
                } else {
                    sender = datenFilm.arr[DatenFilm.FILM_SENDER_NR];
                }
                if (datenFilm.arr[DatenFilm.FILM_THEMA_NR].isEmpty()) {
                    datenFilm.arr[DatenFilm.FILM_THEMA_NR] = thema;
                } else {
                    thema = datenFilm.arr[DatenFilm.FILM_THEMA_NR];
                }

                listeFilme.importFilmliste(datenFilm);
                if (seconds > 0) {
                    // muss "rckwrts" laufen, da das Datum sonst 2x gebaut werden muss
                    // wenns drin bleibt, kann mans noch ndern
                    if (!checkDate(datenFilm)) {
                        listeFilme.remove(datenFilm);
                    }
                }
            }
        }
    } catch (FileNotFoundException ex) {
        listeFilme.clear();
    } catch (Exception ex) {
        MSLog.fehlerMeldung(945123641, MSLog.FEHLER_ART_PROG,
                "MSearchIoXmlFilmlisteLesen.readFilmListe: " + source, ex);
        listeFilme.clear();
    }
    if (MSConfig.getStop()) {
        listeFilme.clear();
    }
    notifyFertig(source, listeFilme);
}

From source file:com.unboundid.scim2.client.requests.SearchRequestBuilder.java

/**
 * Invoke the SCIM retrieve request.//ww  w. j  a v a2 s  .co m
 *
 * @param post {@code true} to send the request using POST or {@code false}
 *             to send the request using GET.
 * @param <T> The type of objects to return.
 * @param resultHandler The search result handler that should be used to
 *                      process the resources.
 * @param cls The Java class object used to determine the type to return.
 * @throws ScimException If an error occurred.
 */
private <T> void invoke(final boolean post, final SearchResultHandler<T> resultHandler, final Class<T> cls)
        throws ScimException {
    Response response;
    if (post) {
        Set<String> attributeSet = null;
        Set<String> excludedAttributeSet = null;
        if (attributes != null && attributes.size() > 0) {
            if (!excluded) {
                attributeSet = attributes;
            } else {
                excludedAttributeSet = attributes;
            }
        }

        SearchRequest searchRequest = new SearchRequest(attributeSet, excludedAttributeSet, filter, sortBy,
                sortOrder, startIndex, count);

        Invocation.Builder builder = target().path(ApiConstants.SEARCH_WITH_POST_PATH_EXTENSION)
                .request(ScimService.MEDIA_TYPE_SCIM_TYPE, MediaType.APPLICATION_JSON_TYPE);
        for (Map.Entry<String, List<Object>> header : headers.entrySet()) {
            builder = builder.header(header.getKey(), StaticUtils.listToString(header.getValue(), ", "));
        }
        response = builder.post(Entity.entity(searchRequest, getContentType()));
    } else {
        response = buildRequest().get();
    }

    try {
        if (response.getStatusInfo().getFamily() == Response.Status.Family.SUCCESSFUL) {
            InputStream inputStream = response.readEntity(InputStream.class);
            try {
                JsonParser parser = JsonUtils.getObjectReader().getFactory().createParser(inputStream);
                try {
                    parser.nextToken();
                    boolean stop = false;
                    while (!stop && parser.nextToken() != JsonToken.END_OBJECT) {
                        String field = parser.getCurrentName();
                        parser.nextToken();
                        if (field.equals("schemas")) {
                            parser.skipChildren();
                        } else if (field.equals("totalResults")) {
                            resultHandler.totalResults(parser.getIntValue());
                        } else if (field.equals("startIndex")) {
                            resultHandler.startIndex(parser.getIntValue());
                        } else if (field.equals("itemsPerPage")) {
                            resultHandler.itemsPerPage(parser.getIntValue());
                        } else if (field.equals("Resources")) {
                            while (parser.nextToken() != JsonToken.END_ARRAY) {
                                if (!resultHandler.resource(parser.readValueAs(cls))) {
                                    stop = true;
                                    break;
                                }
                            }
                        } else if (SchemaUtils.isUrn(field)) {
                            resultHandler.extension(field, parser.<ObjectNode>readValueAsTree());
                        } else {
                            // Just skip this field
                            parser.nextToken();
                        }
                    }
                } finally {
                    if (inputStream != null) {
                        inputStream.close();
                    }
                    parser.close();
                }
            } catch (IOException e) {
                throw new ResponseProcessingException(response, e);
            }
        } else {
            throw toScimException(response);
        }
    } finally {
        response.close();
    }
}

From source file:de.upb.wdqa.wdvd.datamodel.oldjson.jackson.deserializers.OldJacksonSnakDeserializer.java

@Override
public OldJacksonSnak deserialize(JsonParser p, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    OldJacksonSnak result = null;/*from w  ww .  ja  va 2  s.c  o m*/

    if (!p.getCurrentToken().equals(JsonToken.START_ARRAY)) {
        logger.warn("Token " + JsonToken.START_ARRAY + " expected");
    }

    p.nextToken();
    String type = p.getText();
    p.nextToken();

    // determine type
    if (type.equals("value")) {
        OldJacksonValueSnak valuesnak = new OldJacksonValueSnak();
        valuesnak.setProperty("P" + p.getIntValue());
        p.nextToken();
        valuesnak.setDatatype(p.getText());
        p.nextToken();

        ObjectMapper mapper = (ObjectMapper) p.getCodec();
        JsonNode root = mapper.readTree(p);
        Class<? extends OldJacksonValue> valueClass = getValueClass(valuesnak.getDatatype());
        if (valueClass != null) {
            valuesnak.setDatavalue(mapper.treeToValue(root, valueClass));
        }

        p.nextToken();

        result = valuesnak;
    } else if (type.equals("novalue")) {
        result = new OldJacksonNoValueSnak();
        result.setProperty("P" + p.getIntValue());
        p.nextToken();
    } else if (type.equals("somevalue")) {
        result = new OldJacksonSomeValueSnak();
        result.setProperty("P" + p.getIntValue());
        p.nextToken();
    } else {
        logger.warn("Unknown value type: " + type);
    }

    if (!p.getCurrentToken().equals(JsonToken.END_ARRAY)) {
        logger.warn("Token " + JsonToken.END_ARRAY + " expected");
    }

    return result;
}

From source file:no.ssb.jsonstat.v2.deser.DatasetDeserializer.java

@Override
public DatasetBuildable deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
    if (p.getCurrentToken() == JsonToken.START_OBJECT) {
        p.nextToken();
    }//w w w .  java  2s  .  co m

    Set<String> ids = Collections.emptySet();
    List<Integer> sizes = Collections.emptyList();
    Multimap<String, String> roles = ArrayListMultimap.create();
    Map<String, Dimension.Builder> dims = Collections.emptyMap();
    List<Number> values = Collections.emptyList();

    DatasetBuilder builder = Dataset.create();
    Optional<String> version = Optional.empty();
    Optional<String> clazz = Optional.empty();
    Optional<ObjectNode> extension = Optional.empty();

    while (p.nextValue() != JsonToken.END_OBJECT) {
        switch (p.getCurrentName()) {
        case "label":
            builder.withLabel(_parseString(p, ctxt));
            break;
        case "source":
            builder.withSource(_parseString(p, ctxt));
            break;
        case "href":
            break;
        case "updated":
            Instant updated = parseEcmaDate(_parseString(p, ctxt));
            builder.updatedAt(updated);
            break;
        case "value":
            values = parseValues(p, ctxt);
            break;
        case "dimension":
            if (!version.orElse("1.x").equals("2.0")) {
                dims = Maps.newHashMap();
                // Deal with the id, size and role inside dimension.
                while (p.nextValue() != JsonToken.END_OBJECT) {
                    switch (p.getCurrentName()) {
                    case "id":
                        ids = p.readValueAs(ID_SET);
                        break;
                    case "size":
                        sizes = p.readValueAs(SIZE_LIST);
                        break;
                    case "role":
                        roles = p.readValueAs(ROLE_MULTIMAP);
                        break;
                    default:
                        dims.put(p.getCurrentName(), ctxt.readValue(p, Dimension.Builder.class));
                    }
                }
            } else {
                dims = p.readValueAs(DIMENSION_MAP);
            }
            break;
        case "id":
            ids = p.readValueAs(ID_SET);
            break;
        case "size":
            sizes = p.readValueAs(SIZE_LIST);
            break;
        case "role":
            roles = p.readValueAs(ROLE_MULTIMAP);
            break;
        case "extension":
            extension = Optional.of(ctxt.readValue(p, ObjectNode.class));
            break;
        case "link":
        case "status":
            // TODO
            p.skipChildren();
            break;
        case "version":
            version = Optional.of(_parseString(p, ctxt));
            break;
        case "class":
            // TODO
            clazz = Optional.of(_parseString(p, ctxt));
            break;
        default:
            boolean handled = ctxt.handleUnknownProperty(p, this, Dimension.Builder.class, p.getCurrentName());
            if (!handled)
                p.skipChildren();
            break;
        }
    }

    // Setup roles
    for (Map.Entry<String, String> dimRole : roles.entries()) {
        Dimension.Roles role = Dimension.Roles.valueOf(dimRole.getKey().toUpperCase());
        Dimension.Builder dimension = checkNotNull(dims.get(dimRole.getValue()),
                "could not assign the role {} to the dimension {}. The dimension did not exist", role,
                dimRole.getValue()

        );
        dimension.withRole(role);
    }

    List<Dimension.Builder> orderedDimensions = Lists.newArrayList();
    for (String dimensionName : ids) {
        orderedDimensions.add(dims.get(dimensionName));
    }

    // TODO: Check size?

    // Check ids and add to the data set.
    checkArgument(ids.size() == dims.size(), "dimension and size did not match");

    if (extension.isPresent()) {
        builder.withExtension(extension.get());
    }

    return builder.withDimensions(orderedDimensions).withValues(values);
}

From source file:com.addthis.codec.jackson.CodecTypeDeserializer.java

private Object _deserializeObjectFromProperty(ObjectNode objectNode, ObjectCodec objectCodec,
        DeserializationContext ctxt) throws IOException {
    String type = objectNode.get(_typePropertyName).asText();
    if (!_typeIdVisible) {
        objectNode.remove(_typePropertyName);
    }//from   ww w.jav a2 s .  c o m
    JsonDeserializer<Object> deser;
    try {
        deser = _findDeserializer(ctxt, type);
    } catch (Throwable cause) {
        throw wrapWithPath(cause, Class.class, _typePropertyName);
    }
    ConfigObject aliasDefaults = pluginMap.aliasDefaults(type);
    String primaryField;
    if (aliasDefaults.containsKey("_primary")) {
        primaryField = (String) aliasDefaults.get("_primary").unwrapped();
    } else {
        primaryField = null;
    }
    boolean unwrapPrimary = handleDefaultsAndImplicitPrimary(objectNode, aliasDefaults, deser, ctxt);
    try {
        JsonParser treeParser = objectCodec.treeAsTokens(objectNode);
        treeParser.nextToken();
        return deser.deserialize(treeParser, ctxt);
    } catch (IOException cause) {
        if (unwrapPrimary) {
            throw Jackson.maybeUnwrapPath(primaryField, cause);
        } else {
            throw cause;
        }
    }
}

From source file:com.addthis.codec.jackson.CodecTypeDeserializer.java

@Nullable
private Object _deserializeTypedFromArray(ArrayNode arrayNode, ObjectCodec objectCodec,
        DeserializationContext ctxt) throws IOException {
    if (idRes.isValidTypeId("_array")) {
        Config aliasDefaults = pluginMap.aliasDefaults("_array").toConfig();
        String arrayField = aliasDefaults.getString("_primary");
        try {/*from  w  w  w. j  a va2s  .  co  m*/
            ObjectNode objectFieldValues = (ObjectNode) objectCodec.createObjectNode();
            Jackson.setAt(objectFieldValues, arrayNode, arrayField);
            ObjectNode aliasFieldDefaults = Jackson.configConverter(aliasDefaults.root());
            Jackson.merge(objectFieldValues, aliasFieldDefaults);
            JsonDeserializer<Object> deser = _findDeserializer(ctxt, "_array");
            JsonParser treeParser = objectCodec.treeAsTokens(objectFieldValues);
            treeParser.nextToken();
            return deser.deserialize(treeParser, ctxt);
        } catch (IOException ex) {
            throw Jackson.maybeUnwrapPath(arrayField, ex);
        }
    } else {
        return null;
    }
}

From source file:com.boundary.zoocreeper.Restore.java

private void doRestore(JsonParser jp, ZooKeeper zk) throws IOException, KeeperException, InterruptedException {
    expectNextToken(jp, JsonToken.START_OBJECT);
    final Set<String> createdPaths = Sets.newHashSet();
    while (jp.nextToken() != JsonToken.END_OBJECT) {
        final BackupZNode zNode = readZNode(jp, jp.getCurrentName());
        // We are the root
        if (path.isEmpty()) {
            path.add(zNode);//from   w w w  .j  av  a2 s.co  m
        } else {
            for (ListIterator<BackupZNode> it = path.listIterator(path.size()); it.hasPrevious();) {
                final BackupZNode parent = it.previous();
                if (zNode.path.startsWith(parent.path)) {
                    break;
                }
                it.remove();
            }
            path.add(zNode);
        }
        if (zNode.ephemeralOwner != 0) {
            LOGGER.info("Skipping ephemeral ZNode: {}", zNode.path);
            continue;
        }
        if (!zNode.path.startsWith(options.rootPath)) {
            LOGGER.info("Skipping ZNode (not under root path '{}'): {}", options.rootPath, zNode.path);
            continue;
        }
        if (options.isPathExcluded(LOGGER, zNode.path) || !options.isPathIncluded(LOGGER, zNode.path)) {
            continue;
        }
        for (BackupZNode pathComponent : path) {
            if (createdPaths.add(pathComponent.path)) {
                restoreNode(zk, pathComponent);
            }
        }
    }
}

From source file:io.pdef.json.JsonJacksonFormat.java

private <T> T read(final JsonParser parser, final DataTypeDescriptor<T> descriptor) throws Exception {
    Object jsonObject;//w  ww  .java 2s .c om

    try {
        parser.nextToken();
        jsonObject = read(parser);
    } finally {
        parser.close();
    }

    return objectFormat.read(jsonObject, descriptor);
}