List of usage examples for com.fasterxml.jackson.core JsonParser getCurrentToken
public abstract JsonToken getCurrentToken();
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); }