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:de.upb.wdqa.wdvd.datamodel.oldjson.jackson.wdtk.ModifiedMapDeserializer.java

@SuppressWarnings("unchecked")
@Override//from   w w w  .  ja  v a 2  s.  c o  m
public Map<K, V> deserialize(JsonParser p, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    Map<K, V> result = null;
    if (p.getCurrentToken().equals(JsonToken.START_ARRAY)) {
        result = new HashMap<>();
        p.nextToken();
        if (!p.getCurrentToken().equals(JsonToken.END_ARRAY)) {
            logger.warn("Array was not empty. Current token: " + p.getCurrentToken());
        }
    } else {
        Object tmp = defaultDeserializer.deserialize(p, ctxt);
        result = (Map<K, V>) tmp;
    }
    return result;
}

From source file:ninja.leaping.configurate.json.JSONConfigurationLoader.java

private void parseObject(JsonParser parser, ConfigurationNode node) throws IOException {
    JsonToken token;/*ww w. ja va2 s .com*/
    while ((token = parser.nextToken()) != null) {
        switch (token) {
        case END_OBJECT:
            return;
        default:
            parseValue(parser, node.getChild(parser.getCurrentName()));
        }
    }
    throw new JsonParseException("Reached end of stream with unclosed array!", parser.getCurrentLocation());
}

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

@Override
@SuppressWarnings("unchecked")
public EList<Map.Entry<?, ?>> deserialize(JsonParser jp, DeserializationContext ctxt,
        EList<Map.Entry<?, ?>> intoValue) throws IOException {
    final EReference reference = EMFContext.getReference(ctxt);

    if (jp.getCurrentToken() == JsonToken.START_OBJECT) {

        while (jp.nextToken() != JsonToken.END_OBJECT) {
            final String key = jp.getCurrentName();
            jp.nextToken();/*from  w  ww  .jav  a2s  . c  om*/

            final Object value;
            if (jp.getCurrentToken() == JsonToken.START_OBJECT) {
                value = ctxt.readValue(jp, EObject.class);
            } else {
                value = ctxt.readValue(jp, Object.class);
            }

            // Dynamic objects do not use the EMap interface
            // but store entries in a DynamicEList instead.
            if (intoValue instanceof EMap) {
                ((EMap) intoValue).put(key, value);
            } else if (reference != null) {
                intoValue
                        .add((Map.Entry<?, ?>) EObjects.createEntry(key, value, reference.getEReferenceType()));
            }
        }
    }

    return intoValue;
}

From source file:ninja.leaping.configurate.json.JSONConfigurationLoader.java

private void parseArray(JsonParser parser, ConfigurationNode node) throws IOException {
    JsonToken token;/*from w w  w  .ja  va2  s  . c om*/
    while ((token = parser.nextToken()) != null) {
        switch (token) {
        case END_ARRAY:
            return;
        default:
            parseValue(parser, node.getAppendedChild());
        }
    }
    throw new JsonParseException("Reached end of stream with unclosed array!", parser.getCurrentLocation());

}

From source file:org.tanrabad.survey.service.json.MultiPolygonTypeConverter.java

private Location getLocation(JsonParser jsonParser) throws IOException {
    Location value3;/* ww  w  .  java 2 s . c o  m*/
    if (jsonParser.getCurrentToken() == JsonToken.START_ARRAY) {
        ArrayList<Double> point = new ArrayList<>();
        while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
            Double coordinate;
            coordinate = jsonParser.getCurrentToken() == JsonToken.VALUE_NULL ? null
                    : jsonParser.getValueAsDouble();
            point.add(coordinate);
        }
        value3 = new Location(point.get(1), point.get(0));
    } else {
        value3 = null;
    }
    return value3;
}

From source file:com.ryan.ryanreader.jsonwrap.JsonBufferedArray.java

@Override
protected void buildBuffered(final JsonParser jp) throws IOException {

    JsonToken jt;/*from  w w w.j ava 2 s  . c o m*/

    while ((jt = jp.nextToken()) != JsonToken.END_ARRAY) {

        final JsonValue value = new JsonValue(jp, jt);

        synchronized (this) {
            contents.add(value);
            items++;
            notifyAll();
        }

        value.buildInThisThread();
    }
}

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

protected EObject postDeserialize(TokenBuffer buffer, EObject object, EClass defaultType,
        DeserializationContext ctxt) throws IOException {
    if (object == null && defaultType == null) {
        return null;
    }//from w  w w  .j a  v  a 2s .co m

    if (object == null) {
        object = EcoreUtil.create(defaultType);
    }

    final Resource resource = getResource(ctxt);
    final JsonParser jp = buffer.asParser();
    final EObjectPropertyMap propertyMap = builder.construct(object.eClass());

    while (jp.nextToken() != null) {
        final String field = jp.getCurrentName();
        final EObjectProperty property = propertyMap.findProperty(field);

        if (property != null) {
            property.deserializeAndSet(jp, object, ctxt, resource);
        } else {
            handleUnknownProperty(jp, resource, ctxt);
        }
    }
    jp.close();
    buffer.close();
    return object;
}

From source file:com.sdl.odata.unmarshaller.json.core.JsonProcessor.java

/**
 * Initialize processor, automatically scanning the input JSON.
 * @throws ODataUnmarshallingException If unable to initialize
 *///from   www  .ja  v  a 2s  . c om
public void initialize() throws ODataUnmarshallingException {
    LOG.info("Parser is initializing");
    try {
        JsonParser jsonParser = JSON_FACTORY.createParser(inputJson);

        while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
            String token = jsonParser.getCurrentName();
            if (token != null) {
                if (token.startsWith(ODATA)) {
                    processSpecialTags(jsonParser);
                } else if (token.endsWith(ODATA_BIND)) {
                    processLinks(jsonParser);
                } else {
                    process(jsonParser);
                }
            }
        }
    } catch (IOException e) {
        throw new ODataUnmarshallingException("It is unable to unmarshall", e);
    }
}

From source file:org.mashti.jetson.json.JsonResponseDecoder.java

protected FutureResponse decode(final ChannelHandlerContext context, final ByteBuf in) throws RPCException {

    JsonParser parser = null;
    FutureResponse future_response = null;
    try {//  w  w w .  ja v a2 s .c om
        parser = json_factory.createParser(new ByteBufInputStream(in));
        parser.nextToken();
        final Integer id = validateAndReadResponseId(parser);
        future_response = getFutureResponseById(context, id);
        readAndValidateVersion(parser);

        final Type expected_return_type = future_response.getMethod().getGenericReturnType();
        setResponseResultOrError(parser, future_response,
                ((ParameterizedType) expected_return_type).getActualTypeArguments()[0]);
        parser.nextToken();
    } catch (final JsonParseException e) {
        LOGGER.debug("failed to parse response", e);

        checkFutureResponse(future_response);
        future_response.completeExceptionally(new InvalidResponseException(e));
    } catch (final JsonGenerationException e) {
        LOGGER.debug("failed to generate response", e);

        checkFutureResponse(future_response);
        future_response.completeExceptionally(new InternalServerException(e));
    } catch (final IOException e) {
        LOGGER.debug("IO error occurred while decoding response", e);

        checkFutureResponse(future_response);
        future_response.completeExceptionally(new TransportException("failed to process response", e));
    } catch (final RuntimeException e) {
        LOGGER.debug("runtime error while decoding response", e);

        checkFutureResponse(future_response);
        future_response.completeExceptionally(new ServerRuntimeException(e));
    } finally {
        CloseableUtil.closeQuietly(parser);
    }

    return future_response;
}

From source file:org.tanrabad.survey.service.json.MultiPolygonTypeConverter.java

@Override
public List<JsonPolygon> parse(JsonParser jsonParser) throws IOException {

    List<JsonPolygon> polygonList;
    if (jsonParser.getCurrentToken() == JsonToken.START_ARRAY) {
        polygonList = new ArrayList<>();
        while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
            ArrayList<List<Location>> polygon = new ArrayList<>();
            while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
                polygon.add(getChildPolygon(jsonParser));
            }/*w  w w  .ja va 2s .c  o m*/
            polygonList.add(new JsonPolygon(getBoundary(polygon), getHoles(polygon)));
        }
    } else {
        polygonList = null;
    }
    return polygonList;
}