List of usage examples for com.fasterxml.jackson.core JsonParser getCurrentToken
public abstract JsonToken getCurrentToken();
From source file:de.upb.wdqa.wdvd.datamodel.oldjson.jackson.deserializers.OldJacksonSnakDeserializer.java
@Override public OldJacksonSnak deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { OldJacksonSnak result = null;/*from ww w . j a v a 2 s .c o m*/ if (!p.getCurrentToken().equals(JsonToken.START_ARRAY)) { logger.warn("Token " + JsonToken.START_ARRAY + " expected"); } p.nextToken(); String type = p.getText(); p.nextToken(); // determine type if (type.equals("value")) { OldJacksonValueSnak valuesnak = new OldJacksonValueSnak(); valuesnak.setProperty("P" + p.getIntValue()); p.nextToken(); valuesnak.setDatatype(p.getText()); p.nextToken(); ObjectMapper mapper = (ObjectMapper) p.getCodec(); JsonNode root = mapper.readTree(p); Class<? extends OldJacksonValue> valueClass = getValueClass(valuesnak.getDatatype()); if (valueClass != null) { valuesnak.setDatavalue(mapper.treeToValue(root, valueClass)); } p.nextToken(); result = valuesnak; } else if (type.equals("novalue")) { result = new OldJacksonNoValueSnak(); result.setProperty("P" + p.getIntValue()); p.nextToken(); } else if (type.equals("somevalue")) { result = new OldJacksonSomeValueSnak(); result.setProperty("P" + p.getIntValue()); p.nextToken(); } else { logger.warn("Unknown value type: " + type); } if (!p.getCurrentToken().equals(JsonToken.END_ARRAY)) { logger.warn("Token " + JsonToken.END_ARRAY + " expected"); } return result; }
From source file:com.adobe.communities.ugc.migration.importer.ForumImportServlet.java
protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { final ResourceResolver resolver = request.getResourceResolver(); UGCImportHelper.checkUserPrivileges(resolver, rrf); final UGCImportHelper importHelper = new UGCImportHelper(); importHelper.setForumOperations(forumOperations); importHelper.setTallyService(tallyOperationsService); // get the forum we'll be adding new topics to final String path = request.getRequestParameter("path").getString(); final Resource resource = request.getResourceResolver().getResource(path); if (resource == null) { throw new ServletException("Could not find a valid resource for import"); }/*from w w w . j av a2 s . c o m*/ // finally get the uploaded file final RequestParameter[] fileRequestParameters = request.getRequestParameters("file"); if (fileRequestParameters != null && fileRequestParameters.length > 0 && !fileRequestParameters[0].isFormField()) { InputStream inputStream = fileRequestParameters[0].getInputStream(); JsonParser jsonParser = new JsonFactory().createParser(inputStream); jsonParser.nextToken(); // get the first token if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) { jsonParser.nextToken(); if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT_TYPE)) { jsonParser.nextToken(); final String contentType = jsonParser.getValueAsString(); if (contentType.equals(getContentType())) { jsonParser.nextToken(); // content if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT)) { jsonParser.nextToken(); // startObject if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) { JsonToken token = jsonParser.nextToken(); // social:key try { while (!token.equals(JsonToken.END_OBJECT)) { importHelper.extractTopic(jsonParser, resource, resource.getResourceResolver(), getOperationsService()); token = jsonParser.nextToken(); } } catch (final IOException e) { throw new ServletException("Encountered an IOException", e); } } else { throw new ServletException("Start object token not found for content"); } } else { throw new ServletException("Content not found"); } } else { throw new ServletException("Expected forum data"); } } else { throw new ServletException("Content Type not specified"); } } else { throw new ServletException("Invalid Json format"); } } }
From source file:org.apache.ode.jacob.soup.jackson.ChannelRefDeserializer.java
@Override public ChannelRef deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { Object target = null;// w ww . ja va2s .c o m while (jp.nextToken() != JsonToken.END_OBJECT) { String fieldname = jp.getCurrentName(); if (jp.getCurrentToken() == JsonToken.FIELD_NAME) { // if we're not already on the field, advance by one. jp.nextToken(); } if ("target".equals(fieldname)) { target = jp.readValueAs(Object.class); } } if (target == null) { throw ctxt.mappingException(ChannelRef.class); } return new ChannelRef(target); }
From source file:ninja.leaping.configurate.json.JSONConfigurationLoader.java
private void parseValue(JsonParser parser, ConfigurationNode node) throws IOException { JsonToken token = parser.getCurrentToken(); switch (token) { case START_OBJECT: parseObject(parser, node);//from w w w . j av a 2s . c om break; case START_ARRAY: parseArray(parser, node); break; case VALUE_NUMBER_FLOAT: node.setValue(parser.getFloatValue()); break; case VALUE_NUMBER_INT: node.setValue(parser.getIntValue()); break; case VALUE_STRING: node.setValue(parser.getText()); break; case VALUE_TRUE: case VALUE_FALSE: node.setValue(parser.getBooleanValue()); break; case VALUE_NULL: // Ignored values case FIELD_NAME: break; default: throw new IOException("Unsupported token type: " + token + " (at " + parser.getTokenLocation() + ")"); } }
From source file:nl.talsmasoftware.enumerables.support.json.jackson2.EnumerableDeserializer.java
/** * This operation deserializes the JSON Object as a concrete Enumerable object instance. * * @param jp The Jackson parser to obtain the value from. * @param ctxt The deserialization context. * @return The parsed enumerable object. * @throws IOException in case the parser encountered any I/O errors while reading the object. *//* ww w . ja v a 2 s.c o m*/ @Override public Enumerable deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { final Class<? extends Enumerable> type = determineType(jp, ctxt); final JsonToken currentToken = jp.getCurrentToken(); switch (currentToken) { case VALUE_NULL: case VALUE_STRING: return Enumerable.parse(type, jp.getText()); case START_OBJECT: return parseObject(jp, type); default: throw new IllegalStateException("Could not parse a valid Enumerable object!", new IllegalStateException(String.format("Unexpected parser token: \"%s\".", currentToken))); } }
From source file:com.addthis.codec.jackson.CodecBeanDeserializer.java
@Override public Object deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonLocation currentLocation = jp.getTokenLocation(); JsonToken t = jp.getCurrentToken(); try {//from w w w. ja v a2 s . c o m if (t == JsonToken.START_OBJECT) { ObjectNode objectNode = jp.readValueAsTree(); handleDefaultsAndRequiredAndNull(ctxt, objectNode); jp = jp.getCodec().treeAsTokens(objectNode); jp.nextToken(); } else if (t == JsonToken.END_OBJECT) { // for some reason this is how they chose to handle single field objects jp.nextToken(); ObjectNode objectNode = ctxt.getNodeFactory().objectNode(); handleDefaultsAndRequiredAndNull(ctxt, objectNode); jp = jp.getCodec().treeAsTokens(objectNode); jp.nextToken(); } Object value = getDelegatee().deserialize(jp, ctxt); if (value instanceof SuperCodable) { ((SuperCodable) value).postDecode(); } return value; } catch (JsonMappingException ex) { throw Jackson.maybeImproveLocation(currentLocation, ex); } }
From source file:org.hyperledger.dropwizard.hocon.HoconDeserializer.java
protected ConfigValue deserializeScalar(JsonParser jp, DeserializationContext ctxt) throws IOException { switch (jp.getCurrentToken()) { case VALUE_EMBEDDED_OBJECT: throw ctxt.mappingException(JsonValue.class); case VALUE_FALSE: return ConfigValueFactory.fromAnyRef(false); case VALUE_TRUE: return ConfigValueFactory.fromAnyRef(true); case VALUE_NULL: return ConfigValueFactory.fromAnyRef(null); case VALUE_NUMBER_FLOAT: // very cumbersome... but has to be done {/*from ww w . j av a 2s . co m*/ if (jp.getNumberType() == JsonParser.NumberType.BIG_DECIMAL) { return ConfigValueFactory.fromAnyRef(jp.getDecimalValue()); } return ConfigValueFactory.fromAnyRef(jp.getDoubleValue()); } case VALUE_NUMBER_INT: { switch (jp.getNumberType()) { case LONG: return ConfigValueFactory.fromAnyRef(jp.getLongValue()); case INT: return ConfigValueFactory.fromAnyRef(jp.getIntValue()); default: return ConfigValueFactory.fromAnyRef(jp.getBigIntegerValue()); } } case VALUE_STRING: return ConfigValueFactory.fromAnyRef(jp.getText()); default: // errors, should never get here // case END_ARRAY: // case END_OBJECT: // case FIELD_NAME: // case NOT_AVAILABLE: // case START_ARRAY: // case START_OBJECT: throw ctxt.mappingException(_valueClass); } }
From source file:de.upb.wdqa.wdvd.datamodel.oldjson.jackson.deserializers.OldAliasesDeserializer.java
@Override public LinkedHashMap<String, List<String>> deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { LinkedHashMap<String, List<String>> result = new LinkedHashMap<String, List<String>>(); // Is the alias broken, i.e., it starts with '[' if (jp.getCurrentToken().equals(JsonToken.START_ARRAY)) { jp.nextToken();/*w ww . j a v a 2 s . c om*/ if (!jp.getCurrentToken().equals(JsonToken.END_ARRAY)) { logger.warn("Token " + JsonToken.END_ARRAY + " expected"); } } else { ObjectCodec mapper = jp.getCodec(); result = mapper.readValue(jp, new TypeReference<LinkedHashMap<String, OldAliasList>>() { }); } return result; }