List of usage examples for com.fasterxml.jackson.core JsonParser nextToken
public abstract JsonToken nextToken() throws IOException, JsonParseException;
From source file:com.msopentech.odatajclient.engine.metadata.edm.ComplexTypeDeserializer.java
@Override protected AbstractComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final AbstractComplexType complexType = ODataVersion.V3 == client.getWorkingVersion() ? new com.msopentech.odatajclient.engine.metadata.edm.v3.ComplexType() : new com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { complexType.setName(jp.nextTextValue()); } else if ("Abstract".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("BaseType".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .setBaseType(jp.nextTextValue()); } else if ("OpenType".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .setOpenType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("Property".equals(jp.getCurrentName())) { jp.nextToken();// w w w . j a va2 s.c o m if (complexType instanceof com.msopentech.odatajclient.engine.metadata.edm.v3.ComplexType) { ((com.msopentech.odatajclient.engine.metadata.edm.v3.ComplexType) complexType) .getProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v3.Property.class)); } else { ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .getProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v4.Property.class)); } } else if ("NavigationProperty".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .getNavigationProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v4.NavigationProperty.class)); } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return complexType; }
From source file:com.sdl.odata.unmarshaller.json.core.JsonProcessor.java
/** * Process all things that do not contain special ODataTags. * * @param jsonParser the parser// w w w .j a v a 2 s.c o m * @throws ODataUnmarshallingException If unable to unmarshall * @throws IOException If unable to read input parser */ private void process(JsonParser jsonParser) throws IOException, ODataUnmarshallingException { if (jsonParser.getCurrentToken() == JsonToken.FIELD_NAME) { LOG.info("Starting to parse {} token", jsonParser.getCurrentName()); String key = jsonParser.getCurrentName(); jsonParser.nextToken(); JsonToken token = jsonParser.getCurrentToken(); if (token == JsonToken.START_ARRAY) { if (JsonConstants.VALUE.equals(key)) { throw new ODataUnmarshallingException("Feed is not supported"); } values.put(key, getCollectionValue(jsonParser)); } else if (token == JsonToken.START_OBJECT) { values.put(key, getEmbeddedObject(jsonParser)); } else { if (token.equals(JsonToken.VALUE_NULL)) { values.put(key, null); } else { values.put(key, jsonParser.getText()); } } } }
From source file:com.sdl.odata.unmarshaller.json.core.JsonProcessor.java
/** * Process OData links./*from www . ja v a 2 s . c o m*/ * * @param jsonParser the parser * @throws IOException If unable to read input parser */ private void processLinks(JsonParser jsonParser) throws IOException { LOG.info("@odata.bind tag found - start parsing"); final String fullLinkFieldName = jsonParser.getText(); final String key = fullLinkFieldName.substring(0, fullLinkFieldName.indexOf(ODATA_BIND)); JsonToken token = jsonParser.nextToken(); if (token != JsonToken.START_ARRAY) { // Single link links.put(key, processLink(jsonParser)); } else { // Array of links final List<String> linksList = new ArrayList<>(); while (jsonParser.nextToken() != JsonToken.END_ARRAY) { linksList.add(processLink(jsonParser)); } this.links.put(key, linksList); } }
From source file:org.debezium.core.doc.JacksonReader.java
private Document parseDocument(JsonParser parser, boolean nested) throws IOException { // Iterate over the fields in the top-level document ... BasicDocument doc = new BasicDocument(); JsonToken token = null;// w ww .j av a 2 s.c o m if (!nested) { // We expect the START_OBJECT token ... token = parser.nextToken(); if (!nested && token != JsonToken.START_OBJECT) { throw new IOException("Expected data to start with an Object, but was " + token); } } String fieldName = null; token = parser.nextToken(); while (token != JsonToken.END_OBJECT) { switch (token) { case FIELD_NAME: fieldName = parser.getCurrentName(); break; case START_OBJECT: doc.setDocument(fieldName, parseDocument(parser, true)); break; case START_ARRAY: doc.setArray(fieldName, parseArray(parser)); break; case VALUE_STRING: doc.setString(fieldName, parser.getValueAsString()); break; case VALUE_TRUE: doc.setBoolean(fieldName, true); break; case VALUE_FALSE: doc.setBoolean(fieldName, false); break; case VALUE_NULL: doc.setNull(fieldName); break; case VALUE_NUMBER_FLOAT: case VALUE_NUMBER_INT: switch (parser.getNumberType()) { case FLOAT: doc.setNumber(fieldName, parser.getFloatValue()); break; case DOUBLE: doc.setNumber(fieldName, parser.getDoubleValue()); break; case BIG_DECIMAL: doc.setNumber(fieldName, parser.getDecimalValue()); break; case INT: doc.setNumber(fieldName, parser.getIntValue()); break; case LONG: doc.setNumber(fieldName, parser.getLongValue()); break; case BIG_INTEGER: doc.setNumber(fieldName, parser.getBigIntegerValue()); break; } break; case VALUE_EMBEDDED_OBJECT: // disregard this, since it's an extension ... break; case NOT_AVAILABLE: throw new JsonParseException("Non-blocking parsers are not supported", parser.getCurrentLocation()); case END_ARRAY: throw new JsonParseException("Not expecting an END_ARRAY token", parser.getCurrentLocation()); case END_OBJECT: throw new JsonParseException("Not expecting an END_OBJECT token", parser.getCurrentLocation()); } token = parser.nextToken(); } return doc; }
From source file:org.oscim.utils.overpass.OverpassAPIReader.java
private void parseNode(JsonParser jp) throws JsonParseException, IOException { long id = 0;// w w w . ja v a2s .c o m double lat = 0, lon = 0; TagSet tags = null; while (jp.nextToken() != JsonToken.END_OBJECT) { String name = jp.getCurrentName(); jp.nextToken(); if ("id".equals(name)) id = jp.getLongValue(); else if ("lat".equals(name)) lat = jp.getDoubleValue(); else if ("lon".equals(name)) lon = jp.getDoubleValue(); else if ("tags".equals(name)) tags = parseTags(jp); } // log("node: "+id + " "+ lat + " " + lon); OsmNode node = new OsmNode(lat, lon, tags, id); ownNodes.add(node); nodesById.put(Long.valueOf(id), node); }
From source file:com.msopentech.odatajclient.engine.data.metadata.edm.ComplexTypeDeserializer.java
@Override protected AbstractComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final AbstractComplexType complexType = ODataVersion.V3 == client.getWorkingVersion() ? new com.msopentech.odatajclient.engine.data.metadata.edm.v3.ComplexType() : new com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { complexType.setName(jp.nextTextValue()); } else if ("Abstract".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("BaseType".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .setBaseType(jp.nextTextValue()); } else if ("OpenType".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .setOpenType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("Property".equals(jp.getCurrentName())) { jp.nextToken();/* ww w. j a va2 s . c o m*/ if (complexType instanceof com.msopentech.odatajclient.engine.data.metadata.edm.v3.ComplexType) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v3.ComplexType) complexType) .getProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v3.Property.class)); } else { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .getProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v4.Property.class)); } } else if ("NavigationProperty".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .getNavigationProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v4.NavigationProperty.class)); } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return complexType; }
From source file:com.msopentech.odatajclient.engine.metadata.edm.EntityTypeDeserializer.java
@Override protected AbstractEntityType doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final AbstractEntityType entityType = ODataVersion.V3 == client.getWorkingVersion() ? new com.msopentech.odatajclient.engine.metadata.edm.v3.EntityType() : new com.msopentech.odatajclient.engine.metadata.edm.v4.EntityType(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { entityType.setName(jp.nextTextValue()); } else if ("Abstract".equals(jp.getCurrentName())) { entityType.setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("BaseType".equals(jp.getCurrentName())) { entityType.setBaseType(jp.nextTextValue()); } else if ("OpenType".equals(jp.getCurrentName())) { entityType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("HasStream".equals(jp.getCurrentName())) { entityType.setHasStream(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("Key".equals(jp.getCurrentName())) { jp.nextToken();/*from w w w . j a va2s .co m*/ entityType.setKey(jp.getCodec().readValue(jp, EntityKey.class)); } else if ("Property".equals(jp.getCurrentName())) { jp.nextToken(); if (entityType instanceof com.msopentech.odatajclient.engine.metadata.edm.v3.EntityType) { ((com.msopentech.odatajclient.engine.metadata.edm.v3.EntityType) entityType).getProperties() .add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v3.Property.class)); } else { ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntityType) entityType).getProperties() .add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v4.Property.class)); } } else if ("NavigationProperty".equals(jp.getCurrentName())) { jp.nextToken(); if (entityType instanceof com.msopentech.odatajclient.engine.metadata.edm.v3.EntityType) { ((com.msopentech.odatajclient.engine.metadata.edm.v3.EntityType) entityType) .getNavigationProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v3.NavigationProperty.class)); } else { ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntityType) entityType) .getNavigationProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v4.NavigationProperty.class)); } } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntityType) entityType) .setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return entityType; }
From source file:org.springframework.security.oauth2.common.OAuth2AccessTokenJackson2Deserializer.java
@Override public OAuth2AccessToken deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { String tokenValue = null;/*from ww w . j a v a2s .c om*/ String tokenType = null; String refreshToken = null; Long expiresIn = null; Set<String> scope = null; Map<String, Object> additionalInformation = new LinkedHashMap<String, Object>(); // TODO What should occur if a parameter exists twice while (jp.nextToken() != JsonToken.END_OBJECT) { String name = jp.getCurrentName(); jp.nextToken(); if (OAuth2AccessToken.ACCESS_TOKEN.equals(name)) { tokenValue = jp.getText(); } else if (OAuth2AccessToken.TOKEN_TYPE.equals(name)) { tokenType = jp.getText(); } else if (OAuth2AccessToken.REFRESH_TOKEN.equals(name)) { refreshToken = jp.getText(); } else if (OAuth2AccessToken.EXPIRES_IN.equals(name)) { try { expiresIn = jp.getLongValue(); } catch (JsonParseException e) { expiresIn = Long.valueOf(jp.getText()); } } else if (OAuth2AccessToken.SCOPE.equals(name)) { String text = jp.getText(); scope = OAuth2Utils.parseParameterList(text); } else { additionalInformation.put(name, jp.readValueAs(Object.class)); } } // TODO What should occur if a required parameter (tokenValue or tokenType) is missing? DefaultOAuth2AccessToken accessToken = new DefaultOAuth2AccessToken(tokenValue); accessToken.setTokenType(tokenType); if (expiresIn != null) { accessToken.setExpiration(new Date(System.currentTimeMillis() + (expiresIn * 1000))); } if (refreshToken != null) { accessToken.setRefreshToken(new DefaultOAuth2RefreshToken(refreshToken)); } accessToken.setScope(scope); accessToken.setAdditionalInformation(additionalInformation); return accessToken; }
From source file:net.opentsdb.utils.TestJSON.java
/** Helper to parse an input stream into a map */ private HashMap<String, String> parseToMap(final JsonParser jp) throws Exception { HashMap<String, String> map = new HashMap<String, String>(); String field = ""; String value;/*w ww .ja v a2 s .co m*/ while (jp.nextToken() != null) { if (jp.getCurrentToken() == JsonToken.FIELD_NAME && jp.getCurrentName() != null) { field = jp.getCurrentName(); } else if (jp.getCurrentToken() == JsonToken.VALUE_STRING) { value = jp.getText(); map.put(field, value); } } return map; }
From source file:de.alexkamp.sandbox.ChrootSandbox.java
@Override public void run() { try {/*w w w . ja va 2 s . c o m*/ JsonParser parser = factory.createParser(socket.getInputStream()); String caller = null; String channel = null; String message = null; JsonToken jt = null; while (null != (jt = parser.nextToken())) { if (jt.isStructStart()) { caller = null; channel = null; message = null; } else if (jt.isStructEnd()) { try { handle(caller, channel, message); } catch (Exception ex) { handleAsyncError(ex); } } else { String name = parser.getCurrentName(); parser.nextToken(); switch (name) { case "Caller": caller = parser.getText(); break; case "Channel": channel = parser.getText(); break; case "Message": message = parser.getText(); break; } } } } catch (Exception e) { handleAsyncError(e); } }