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:com.msopentech.odatajclient.engine.data.metadata.edm.TypeAnnotationDeserializer.java

@Override
public TypeAnnotation deserialize(final JsonParser jp, final DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    final TypeAnnotation typeAnnot = new TypeAnnotation();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Term".equals(jp.getCurrentName())) {
                typeAnnot.setTerm(jp.nextTextValue());
            } else if ("Qualifier".equals(jp.getCurrentName())) {
                typeAnnot.setQualifier(jp.nextTextValue());
            } else if ("Documentation".equals(jp.getCurrentName())) {
                jp.nextToken();// ww  w .  j  av  a 2s . c  o m
                typeAnnot.setDocumentation(jp.getCodec().readValue(jp, Documentation.class));
            } else if ("PropertyValue".equals(jp.getCurrentName())) {
                jp.nextToken();
                typeAnnot.getPropertyValues().add(jp.getCodec().readValue(jp, PropertyValue.class));
            }
        }
    }

    return typeAnnot;
}

From source file:com.msopentech.odatajclient.engine.data.metadata.edm.v4.FunctionDeserializer.java

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

    final Function function = new Function();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Name".equals(jp.getCurrentName())) {
                function.setName(jp.nextTextValue());
            } else if ("IsBound".equals(jp.getCurrentName())) {
                function.setBound(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("IsComposable".equals(jp.getCurrentName())) {
                function.setComposable(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("EntitySetPath".equals(jp.getCurrentName())) {
                function.setEntitySetPath(jp.nextTextValue());
            } else if ("Parameter".equals(jp.getCurrentName())) {
                jp.nextToken();//from  ww w.  ja v a 2 s. c  om
                function.getParameters().add(jp.getCodec().readValue(jp, Parameter.class));
            } else if ("ReturnType".equals(jp.getCurrentName())) {
                function.setReturnType(parseReturnType(jp, "Function"));
            } else if ("Annotation".equals(jp.getCurrentName())) {
                jp.nextToken();
                function.setAnnotation(jp.getCodec().readValue(jp, Annotation.class));
            }
        }
    }

    return function;
}

From source file:com.trenurbanoapp.webapi.WebApiRestClient.java

public AssetsPositionResponse assetsPosition() {

    HttpClient httpClient = getHttpClient();
    HttpGet httpGet = new HttpGet(urlbase + "/asset/position");
    getRequestCallback().doWithRequest(httpGet);
    try {/*from  w  w w  .jav a  2 s  .co m*/
        return httpClient.execute(httpGet, response -> {
            int status = response.getStatusLine().getStatusCode();
            if (!(status >= 200 && status < 300)) {
                return new AssetsPositionResponse(status, response.getStatusLine().getReasonPhrase());
            }

            List<AssetPosition> assets = new ArrayList<>();
            final JsonFactory jsonFactory = getObjectMapper().getFactory();
            final JsonParser parser = jsonFactory.createParser(response.getEntity().getContent());
            JsonToken token;
            while ((token = parser.nextToken()) != null) {
                switch (token) {
                case START_OBJECT:
                    JsonNode node = parser.readValueAsTree();
                    AssetPosition position = createAssetPosition(node);
                    assets.add(position);
                    if (assetPositionCallback != null) {
                        assetPositionCallback.execute(position);
                    }
                    break;
                }
            }
            return new AssetsPositionResponse(assets);
        });
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.emfjson.jackson.databind.deser.EcoreReferenceDeserializer.java

@Override
public ReferenceEntry deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    EObject parent = EMFContext.getParent(ctxt);
    EReference reference = EMFContext.getReference(ctxt);

    String id = null;/* w w w . j  a v  a2 s  .  co m*/
    String type = null;

    while (jp.nextToken() != JsonToken.END_OBJECT) {
        final String field = jp.getCurrentName();

        if (field.equalsIgnoreCase(info.getProperty())) {
            id = jp.nextTextValue();
        } else if (field.equalsIgnoreCase(info.getTypeProperty())) {
            type = jp.nextTextValue();
        }
    }

    return id != null ? new ReferenceEntry.Base(parent, reference, id, type) : null;
}

From source file:org.apache.streams.facebook.processor.FacebookTypeConverter.java

public boolean isValidJSON(final String json) {
    boolean valid = false;
    try {/*from   w ww  .  j  ava 2s.  c om*/
        final JsonParser parser = new ObjectMapper().getJsonFactory().createJsonParser(json);
        while (parser.nextToken() != null) {
        }
        valid = true;
    } catch (JsonParseException jpe) {
        LOGGER.warn("validate: {}", jpe);
    } catch (IOException ioe) {
        LOGGER.warn("validate: {}", ioe);
    }

    return valid;
}

From source file:com.msopentech.odatajclient.engine.data.metadata.edm.v4.TermDeserializer.java

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

    final Term term = new Term();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Name".equals(jp.getCurrentName())) {
                term.setName(jp.nextTextValue());
            } else if ("Type".equals(jp.getCurrentName())) {
                term.setType(jp.nextTextValue());
            } else if ("BaseTerm".equals(jp.getCurrentName())) {
                term.setBaseTerm(jp.nextTextValue());
            } else if ("DefaultValue".equals(jp.getCurrentName())) {
                term.setDefaultValue(jp.nextTextValue());
            } else if ("Nullable".equals(jp.getCurrentName())) {
                term.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("MaxLength".equals(jp.getCurrentName())) {
                term.setMaxLength(jp.nextTextValue());
            } else if ("Precision".equals(jp.getCurrentName())) {
                term.setPrecision(BigInteger.valueOf(jp.nextLongValue(0L)));
            } else if ("Scale".equals(jp.getCurrentName())) {
                term.setScale(BigInteger.valueOf(jp.nextLongValue(0L)));
            } else if ("SRID".equals(jp.getCurrentName())) {
                term.setSrid(jp.nextTextValue());
            } else if ("AppliesTo".equals(jp.getCurrentName())) {
                for (String split : StringUtils.split(jp.nextTextValue())) {
                    term.getAppliesTo().add(CSDLElement.valueOf(split));
                }/*from w  ww  .ja v a  2 s.c  om*/
            } else if ("Annotation".equals(jp.getCurrentName())) {
                jp.nextToken();
                term.setAnnotation(jp.getCodec().readValue(jp, Annotation.class));
            }
        }
    }

    return term;
}

From source file:com.pursuer.reader.easyrss.data.parser.SubscriptionJSONParser.java

public void parse() throws JsonParseException, IOException, IllegalStateException {
    final JsonFactory factory = new JsonFactory();
    final JsonParser parser = factory.createJsonParser(input);
    Subscription sub = new Subscription();
    int level = 0;
    boolean found = false;
    while (parser.nextToken() != null) {
        final String name = parser.getCurrentName();
        switch (parser.getCurrentToken()) {
        case START_OBJECT:
        case START_ARRAY:
            level++;// www .jav a 2 s .  c  o  m
            break;
        case END_OBJECT:
        case END_ARRAY:
            level--;
            break;
        case VALUE_STRING:
            if (level == 3) {
                if ("id".equals(name)) {
                    sub.setUid(parser.getText());
                } else if ("htmlUrl".equals(name)) {
                    sub.setUrl(parser.getText());
                } else if ("title".equals(name)) {
                    sub.setTitle(Html.fromHtml(parser.getText()).toString());
                } else if ("sortid".equals(name)) {
                    sub.setSortId(parser.getText());
                } else if ("firstitemmsec".equals(name)) {
                    sub.setFirstItemMsec(Long.valueOf(parser.getText()));
                }
            } else if (level == 5 && "id".equals(name)) {
                sub.addTag(parser.getText());
            }
            break;
        case FIELD_NAME:
            if (level == 1 && "subscriptions".equals(name)) {
                found = true;
            }
            break;
        default:
        }
        if (level == 2) {
            if (sub.getUid() != null && listener != null) {
                listener.onSubscriptionRetrieved(sub);
            }
            sub = new Subscription();
        }
    }
    parser.close();
    if (!found) {
        throw new IllegalStateException("Invalid JSON input");
    }
}

From source file:com.cinnober.msgcodec.json.JsonValueHandlerTest.java

@Test
public void testFloat64DecodeNaN() throws IOException {
    JsonParser p = f.createParser("\"NaN\"");
    p.nextToken();
    assertTrue(Double.isNaN(JsonValueHandler.FLOAT64.readValue(p)));
}

From source file:com.cinnober.msgcodec.json.JsonValueHandlerTest.java

@Test
public void testFloat32DecodeNaN() throws IOException {
    JsonParser p = f.createParser("\"NaN\"");
    p.nextToken();
    assertTrue(Double.isNaN(JsonValueHandler.FLOAT32.readValue(p)));
}

From source file:uk.ac.manchester.cs.owl.semspreadsheets.repository.bioportal.BioPortalRepositoryAccessor.java

public String fetchOntologyFormat(String ontologyAcronym) {
    logger.debug("Fetching format for " + ontologyAcronym);
    BioPortalCache cache = BioPortalCache.getInstance();
    String format = cache.getFormat(ontologyAcronym);
    if (format != null) {
        if (logger.isDebugEnabled()) {
            logger.debug("The ontology format for " + ontologyAcronym + " was found in the cache as " + format);
        }/*  w ww .ja  v  a2s  .  c  o  m*/
    } else {
        logger.info("The format for " + ontologyAcronym + " not found in cache, fetching");
        try {
            URL url = new URL(BioPortalRepository.ONTOLOGY_LIST + "/" + ontologyAcronym + "/"
                    + BioPortalRepository.LATEST_SUBMISSION + "?format=json&apikey="
                    + BioPortalRepository.readAPIKey());
            logger.info("About to fetch more ontology information from " + url.toExternalForm());
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setConnectTimeout(CONNECT_TIMEOUT);
            connection.setReadTimeout(CONNECT_TIMEOUT);
            int responseCode = connection.getResponseCode();
            logger.info("BioPortal http response: " + responseCode);

            if (responseCode == 400 || responseCode == 403) {
                throw new BioPortalAccessDeniedException();
            }

            JsonParser parser = new JsonFactory().createParser(connection.getInputStream());
            while (format == null && parser.nextToken() != null) {
                String name = parser.getCurrentName();
                if ("hasOntologyLanguage".equals(name)) {
                    parser.nextToken();
                    format = parser.getText();
                }
            }
            if (format == null) {
                format = "unknown";
            }
            cache.storeFormat(ontologyAcronym, format);
        } catch (UnknownHostException e) {
            ErrorHandler.getErrorHandler().handleError(e);
        } catch (MalformedURLException e) {
            logger.error("Error with URL for BioPortal rest API", e);
        } catch (SocketTimeoutException e) {
            logger.error("Timeout connecting to BioPortal", e);
            ErrorHandler.getErrorHandler().handleError(e);
        } catch (IOException e) {
            logger.error("Error communiciating with BioPortal rest API", e);
        } catch (BioPortalAccessDeniedException e) {
            ErrorHandler.getErrorHandler().handleError(e);
        }
    }

    return format;
}