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

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

Introduction

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

Prototype

public abstract JsonToken getCurrentToken();

Source Link

Document

Accessor to find which token parser currently points to, if any; null will be returned if none.

Usage

From source file:com.basistech.rosette.dm.jackson.ListAttributeDeserializer.java

@Override
@SuppressWarnings("unchecked")
public ListAttribute deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    if (jp.getCurrentToken() == JsonToken.START_OBJECT) { // this is what we expect.
        // we advance to be in the same place the 'else' will be -- the first FIELD_NAME.
        jp.nextToken();/* w  w  w. j ava 2  s  .  com*/
    } else {
        /* In a full AnnotatedText, which is already doing some polymorphism shuffling, we end up here. */
        /* We find a FIELD_NAME for the first field of the object */
        if (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
            throw ctxt.wrongTokenException(jp, JsonToken.START_OBJECT,
                    "ListAttributeDeserializer called not at or FIELD_NAME of first field");
        }
        /* We are at the field name, ready for the loop. */
    }
    TokenBuffer tb = null;
    for (JsonToken t = jp.getCurrentToken(); t == JsonToken.FIELD_NAME; t = jp.nextToken()) {
        String name = jp.getCurrentName();
        if ("itemType".equals(name)) { // gotcha!
            return deserialize(jp, ctxt, tb);
        }
        if (tb == null) {
            tb = new TokenBuffer(null, false);
        }
        tb.copyCurrentStructure(jp);
    }
    throw ctxt.mappingException("No itemType provided in a list");
}

From source file:com.wavemaker.commons.json.deserializer.WMSqlDateDeSerializer.java

@Override
public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
        throws IOException, JsonProcessingException {
    JsonToken currentToken = jsonParser.getCurrentToken();
    if (currentToken == JsonToken.VALUE_STRING) {
        String value = jsonParser.getText();
        return getDate(value);
    }/*from w ww  .  j  av  a  2s. co  m*/
    throw new WMRuntimeException("Unable to read the token as java.sql.Date");
}

From source file:net.nullschool.grains.jackson.datatype.AbstractBasicConstCollectionDeserializer.java

@Override
public T deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonToken token = jp.getCurrentToken();
    if (token != JsonToken.START_ARRAY) {
        throw ctxt.mappingException(collectionType.getRawClass());
    }/*from w  w  w  . j a  v  a  2 s.  c  om*/

    if ((token = jp.nextToken()) == JsonToken.END_ARRAY) {
        return emptyResult();
    }

    JsonDeserializer<?> ed = elementDeserializer;
    TypeDeserializer etd = elementTypeDeserializer;

    List<Object> elements = null;
    Object element;
    do {
        element = token != JsonToken.VALUE_NULL
                ? etd == null ? ed.deserialize(jp, ctxt) : ed.deserializeWithType(jp, ctxt, etd)
                : null;

        token = jp.nextToken();
        if (elements == null) {
            if (token == JsonToken.END_ARRAY) {
                return resultOf(element);
            }
            elements = new ArrayList<>();
        }
        elements.add(element);
    } while (token != JsonToken.END_ARRAY);

    return asResult(elements);
}

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

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

    final Edmx edmx = new Edmx();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Version".equals(jp.getCurrentName())) {
                edmx.setVersion(jp.nextTextValue());
            } else if ("DataServices".equals(jp.getCurrentName())) {
                jp.nextToken();//ww w .  j a v  a 2  s.c  o  m
                edmx.setDataServices(jp.getCodec().readValue(jp, DataServices.class));
            }
        }
    }

    return edmx;
}

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

private List<Location> getChildPolygon(JsonParser jsonParser) throws IOException {
    List<Location> eachChildPolygon;
    if (jsonParser.getCurrentToken() == JsonToken.START_ARRAY) {
        eachChildPolygon = new ArrayList<>();
        while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
            eachChildPolygon.add(getLocation(jsonParser));
        }//from  w  w w  . ja  va 2  s  . c  o  m
    } else {
        eachChildPolygon = null;
    }
    return eachChildPolygon;
}

From source file:com.orange.clara.cloud.truststore.CertificateJsonDeserializer.java

@Override
public List<Certificate> deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    ObjectMapper mapper = (ObjectMapper) jp.getCodec();
    if (jp.getCurrentToken().equals(JsonToken.START_ARRAY)) {
        final List<String> certificates = mapper.readValue(jp, new TypeReference<List<String>>() {
        });// ww  w. j  a v a2 s.  c  o m
        final List<Certificate> collect = certificates.stream().map(e -> CertificateFactory.newInstance(e))
                .collect(Collectors.toList());
        return collect;
    } else {
        //consume this stream
        mapper.readTree(jp);
        return new ArrayList<Certificate>();
    }
}

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));
            }/*from  w w w .  j a v  a2  s  . c  o  m*/
            polygonList.add(new JsonPolygon(getBoundary(polygon), getHoles(polygon)));
        }
    } else {
        polygonList = null;
    }
    return polygonList;
}

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

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

    final EntityKey entityKey = new EntityKey();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();

        if (token == JsonToken.FIELD_NAME && "PropertyRef".equals(jp.getCurrentName())) {
            jp.nextToken();//from  w  ww .j  a v  a2s .c o m
            entityKey.getPropertyRefs().add(jp.getCodec().readValue(jp, PropertyRef.class));
        }
    }

    return entityKey;
}

From source file:com.google.openrtb.json.OpenRtbJsonExtComplexReader.java

@SuppressWarnings("unchecked")
private void readRepeated(EB msg, JsonParser par) throws IOException {
    par.nextToken();// ww  w.  ja  va2 s. c  o m
    JsonToken tokLast = par.getCurrentToken();
    JsonLocation locLast = par.getCurrentLocation();
    for (startArray(par); endArray(par); par.nextToken()) {
        boolean objRead = false;
        XB ext = (XB) key.getMessageDefaultInstance().toBuilder();
        for (startObject(par); endObject(par); par.nextToken()) {
            read(ext, par);
            JsonToken tokNew = par.getCurrentToken();
            JsonLocation locNew = par.getCurrentLocation();
            if (tokNew != tokLast || !locNew.equals(locLast)) {
                objRead = true;
            }
            tokLast = tokNew;
            locLast = locNew;
        }
        if (objRead) {
            msg.addExtension(key, ext.build());
        }
    }
}

From source file:com.wavemaker.commons.json.deserializer.WMDateDeSerializer.java

@Override
public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
        throws IOException, JsonProcessingException {
    JsonToken currentToken = jsonParser.getCurrentToken();
    if (currentToken == JsonToken.VALUE_STRING) {
        String value = jsonParser.getText();
        return getDate(value);
    }// ww w  .  ja  v a  2s. c om
    return super.deserialize(jsonParser, deserializationContext);
}