List of usage examples for com.fasterxml.jackson.core JsonParser getText
public abstract String getText() throws IOException, JsonParseException;
From source file:com.google.openrtb.json.OpenRtbJsonReader.java
protected void readNativeField(JsonParser par, Native.Builder nativ, String fieldName) throws IOException { switch (fieldName) { case "request": if (par.getCurrentToken() == JsonToken.VALUE_STRING) { nativ.setRequestNative(factory().newNativeReader().readNativeRequest( new CharArrayReader(par.getTextCharacters(), par.getTextOffset(), par.getTextLength()))); } else { // Object nativ.setRequestNative(factory().newNativeReader().readNativeRequest(par)); }/* ww w.j av a2 s . com*/ break; case "ver": nativ.setVer(par.getText()); break; case "api": for (startArray(par); endArray(par); par.nextToken()) { APIFramework value = APIFramework.valueOf(par.getIntValue()); if (checkEnum(value)) { nativ.addApi(value); } } break; case "battr": for (startArray(par); endArray(par); par.nextToken()) { CreativeAttribute value = CreativeAttribute.valueOf(par.getIntValue()); if (checkEnum(value)) { nativ.addBattr(value); } } break; default: readOther(nativ, par, fieldName); } }
From source file:com.google.openrtb.json.OpenRtbJsonReader.java
@SuppressWarnings("deprecation") protected void readBannerField(JsonParser par, Banner.Builder banner, String fieldName) throws IOException { switch (fieldName) { case "w": banner.setW(par.getIntValue());// w w w.j a va2 s .c om break; case "h": banner.setH(par.getIntValue()); break; case "wmax": banner.setWmax(par.getIntValue()); break; case "hmax": banner.setHmax(par.getIntValue()); break; case "wmin": banner.setWmin(par.getIntValue()); break; case "hmin": banner.setHmin(par.getIntValue()); break; case "id": banner.setId(par.getText()); break; case "btype": for (startArray(par); endArray(par); par.nextToken()) { BannerAdType value = BannerAdType.valueOf(par.getIntValue()); if (checkEnum(value)) { banner.addBtype(value); } } break; case "battr": for (startArray(par); endArray(par); par.nextToken()) { CreativeAttribute value = CreativeAttribute.valueOf(par.getIntValue()); if (checkEnum(value)) { banner.addBattr(value); } } break; case "pos": { AdPosition value = AdPosition.valueOf(par.getIntValue()); if (checkEnum(value)) { banner.setPos(value); } } break; case "mimes": for (startArray(par); endArray(par); par.nextToken()) { banner.addMimes(par.getText()); } break; case "topframe": banner.setTopframe(par.getValueAsBoolean()); break; case "expdir": for (startArray(par); endArray(par); par.nextToken()) { ExpandableDirection value = ExpandableDirection.valueOf(par.getIntValue()); if (checkEnum(value)) { banner.addExpdir(value); } } break; case "api": for (startArray(par); endArray(par); par.nextToken()) { APIFramework value = APIFramework.valueOf(par.getIntValue()); if (checkEnum(value)) { banner.addApi(value); } } break; case "format": for (startArray(par); endArray(par); par.nextToken()) { banner.addFormat(readFormat(par)); } break; default: readOther(banner, par, fieldName); } }
From source file:name.gumartinm.weather.information.parser.JPOSCurrentParser.java
private void getCurrentWeatherDataObjects(final Current currentWeatherData, final JsonParser jParser, final String fieldname) throws JsonParseException, IOException { if ("coord".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("lon".equals(namefield)) { currentWeatherData.getCoord().setLon(jParser.getDoubleValue()); }/*w w w. ja va2 s . c om*/ if ("lat".equals(namefield)) { currentWeatherData.getCoord().setLat(jParser.getDoubleValue()); } } } if ("sys".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("message".equals(namefield)) { currentWeatherData.getSys().setMessage(jParser.getDoubleValue()); } if ("country".equals(namefield)) { currentWeatherData.getSys().setCountry(jParser.getValueAsString()); } if ("sunrise".equals(namefield)) { currentWeatherData.getSys().setSunrise(jParser.getValueAsLong()); } if ("sunset".equals(namefield)) { currentWeatherData.getSys().setSunset(jParser.getValueAsLong()); } } } if ("weather".equals(fieldname)) { final Weather weather = new Weather(); currentWeatherData.getWeather().add(weather); while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("id".equals(namefield)) { weather.setId(jParser.getIntValue()); } if ("main".equals(namefield)) { weather.setMain(jParser.getText()); } if ("description".equals(namefield)) { weather.setDescription(jParser.getText()); } if ("icon".equals(namefield)) { weather.setIcon(jParser.getText()); } } } if ("base".equals(fieldname)) { currentWeatherData.setBase(jParser.getText()); } if ("main".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("temp".equals(namefield)) { currentWeatherData.getMain().setTemp(jParser.getDoubleValue()); } if ("temp_min".equals(namefield)) { currentWeatherData.getMain().setTemp_min(jParser.getDoubleValue()); } if ("temp_max".equals(namefield)) { currentWeatherData.getMain().setTemp_max(jParser.getDoubleValue()); } if ("pressure".equals(namefield)) { currentWeatherData.getMain().setPressure(jParser.getDoubleValue()); } if ("sea_level".equals(namefield)) { currentWeatherData.getMain().setSea_level(jParser.getDoubleValue()); } if ("grnd_level".equals(namefield)) { currentWeatherData.getMain().setGrnd_level(jParser.getDoubleValue()); } if ("humidity".equals(namefield)) { currentWeatherData.getMain().setHumidity(jParser.getDoubleValue()); } } } if ("wind".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("speed".equals(namefield)) { currentWeatherData.getWind().setSpeed(jParser.getDoubleValue()); } if ("deg".equals(namefield)) { currentWeatherData.getWind().setDeg(jParser.getDoubleValue()); } } } if ("clouds".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("all".equals(namefield)) { currentWeatherData.getClouds().setAll(jParser.getDoubleValue()); } } } if ("dt".equals(fieldname)) { currentWeatherData.setDt(jParser.getLongValue()); } if ("rain".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("3h".equals(namefield)) { currentWeatherData.getRain().set3h(jParser.getDoubleValue()); } } } if ("snow".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("3h".equals(namefield)) { currentWeatherData.getSnow().set3h(jParser.getDoubleValue()); } } } if ("id".equals(fieldname)) { currentWeatherData.setId(jParser.getLongValue()); } if ("name".equals(fieldname)) { currentWeatherData.setName(jParser.getText()); } if ("cod".equals(fieldname)) { currentWeatherData.setCod(jParser.getIntValue()); } }
From source file:org.elasticsearch.client.sniff.ElasticsearchNodesSniffer.java
private static Node readNode(String nodeId, JsonParser parser, Scheme scheme) throws IOException { HttpHost publishedHost = null;//from w w w.ja va2 s . c o m /* * We sniff the bound hosts so we can look up the node based on any * address on which it is listening. This is useful in Elasticsearch's * test framework where we sometimes publish ipv6 addresses but the * tests contact the node on ipv4. */ Set<HttpHost> boundHosts = new HashSet<>(); String name = null; String version = null; /* * Multi-valued attributes come with key = `real_key.index` and we * unflip them after reading them because we can't rely on the order * that they arive. */ final Map<String, String> protoAttributes = new HashMap<String, String>(); boolean sawRoles = false; boolean master = false; boolean data = false; boolean ingest = false; String fieldName = null; while (parser.nextToken() != JsonToken.END_OBJECT) { if (parser.getCurrentToken() == JsonToken.FIELD_NAME) { fieldName = parser.getCurrentName(); } else if (parser.getCurrentToken() == JsonToken.START_OBJECT) { if ("http".equals(fieldName)) { while (parser.nextToken() != JsonToken.END_OBJECT) { if (parser.getCurrentToken() == JsonToken.VALUE_STRING && "publish_address".equals(parser.getCurrentName())) { URI publishAddressAsURI = URI.create(scheme + "://" + parser.getValueAsString()); publishedHost = new HttpHost(publishAddressAsURI.getHost(), publishAddressAsURI.getPort(), publishAddressAsURI.getScheme()); } else if (parser.currentToken() == JsonToken.START_ARRAY && "bound_address".equals(parser.getCurrentName())) { while (parser.nextToken() != JsonToken.END_ARRAY) { URI boundAddressAsURI = URI.create(scheme + "://" + parser.getValueAsString()); boundHosts.add(new HttpHost(boundAddressAsURI.getHost(), boundAddressAsURI.getPort(), boundAddressAsURI.getScheme())); } } else if (parser.getCurrentToken() == JsonToken.START_OBJECT) { parser.skipChildren(); } } } else if ("attributes".equals(fieldName)) { while (parser.nextToken() != JsonToken.END_OBJECT) { if (parser.getCurrentToken() == JsonToken.VALUE_STRING) { String oldValue = protoAttributes.put(parser.getCurrentName(), parser.getValueAsString()); if (oldValue != null) { throw new IOException("repeated attribute key [" + parser.getCurrentName() + "]"); } } else { parser.skipChildren(); } } } else { parser.skipChildren(); } } else if (parser.currentToken() == JsonToken.START_ARRAY) { if ("roles".equals(fieldName)) { sawRoles = true; while (parser.nextToken() != JsonToken.END_ARRAY) { switch (parser.getText()) { case "master": master = true; break; case "data": data = true; break; case "ingest": ingest = true; break; default: logger.warn("unknown role [" + parser.getText() + "] on node [" + nodeId + "]"); } } } else { parser.skipChildren(); } } else if (parser.currentToken().isScalarValue()) { if ("version".equals(fieldName)) { version = parser.getText(); } else if ("name".equals(fieldName)) { name = parser.getText(); } } } //http section is not present if http is not enabled on the node, ignore such nodes if (publishedHost == null) { logger.debug("skipping node [" + nodeId + "] with http disabled"); return null; } Map<String, List<String>> realAttributes = new HashMap<>(protoAttributes.size()); List<String> keys = new ArrayList<>(protoAttributes.keySet()); for (String key : keys) { if (key.endsWith(".0")) { String realKey = key.substring(0, key.length() - 2); List<String> values = new ArrayList<>(); int i = 0; while (true) { String value = protoAttributes.remove(realKey + "." + i); if (value == null) { break; } values.add(value); i++; } realAttributes.put(realKey, unmodifiableList(values)); } } for (Map.Entry<String, String> entry : protoAttributes.entrySet()) { realAttributes.put(entry.getKey(), singletonList(entry.getValue())); } if (version.startsWith("2.")) { /* * 2.x doesn't send roles, instead we try to read them from * attributes. */ boolean clientAttribute = v2RoleAttributeValue(realAttributes, "client", false); Boolean masterAttribute = v2RoleAttributeValue(realAttributes, "master", null); Boolean dataAttribute = v2RoleAttributeValue(realAttributes, "data", null); master = masterAttribute == null ? false == clientAttribute : masterAttribute; data = dataAttribute == null ? false == clientAttribute : dataAttribute; } else { assert sawRoles : "didn't see roles for [" + nodeId + "]"; } assert boundHosts.contains(publishedHost) : "[" + nodeId + "] doesn't make sense! publishedHost should be in boundHosts"; logger.trace("adding node [" + nodeId + "]"); return new Node(publishedHost, boundHosts, name, version, new Roles(master, data, ingest), unmodifiableMap(realAttributes)); }
From source file:org.duniter.core.client.model.bma.jackson.CertificationDeserializer.java
@Override public BlockchainBlock.Certification deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { String certificationStr = jp.getText(); if (StringUtils.isBlank(certificationStr)) { return null; }//w w w . ja v a 2 s . c om String[] parts = certificationStr.split(":"); if (parts.length != 4) { throw new JsonSyntaxException(String.format( "Bad format for BlockchainBlock.Certification. Should have 4 parts, but found %s.", parts.length)); } BlockchainBlock.Certification result = new BlockchainBlock.Certification(); int i = 0; result.setFromPubkey(parts[i++]); result.setToPubkey(parts[i++]); result.setBlockId(parts[i++]); result.setSignature(parts[i++]); return result; }
From source file:org.duniter.core.client.model.bma.jackson.IdentityDeserializer.java
@Override public BlockchainBlock.Identity deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { String identityStr = jp.getText(); if (StringUtils.isBlank(identityStr)) { return null; }//from w w w .j a v a 2 s. com String[] identityParts = identityStr.split(":"); if (identityParts.length != 4) { throw new JsonSyntaxException( String.format("Bad format for BlockchainBlock.Identity. Should have 4 parts, but found %s.", identityParts.length)); } BlockchainBlock.Identity result = new BlockchainBlock.Identity(); int i = 0; result.setPublicKey(identityParts[i++]); result.setSignature(identityParts[i++]); result.setBlockUid(identityParts[i++]); result.setUserId(identityParts[i++]); return result; }
From source file:org.duniter.core.client.model.bma.jackson.JoinerDeserializer.java
@Override public BlockchainBlock.Joiner deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { String identityStr = jp.getText(); if (StringUtils.isBlank(identityStr)) { return null; }/* w w w. ja va2 s .co m*/ String[] identityParts = identityStr.split(":"); if (identityParts.length != 5) { throw new JsonSyntaxException( String.format("Bad format for BlockchainBlock.Identity. Should have 5 parts, but found %s.", identityParts.length)); } BlockchainBlock.Joiner result = new BlockchainBlock.Joiner(); int i = 0; result.setPublicKey(identityParts[i++]); result.setSignature(identityParts[i++]); result.setMembershipBlockUid(identityParts[i++]); result.setIdtyBlockUid(identityParts[i++]); result.setUserId(identityParts[i++]); return result; }
From source file:org.duniter.core.client.model.bma.jackson.RevokedDeserializer.java
@Override public BlockchainBlock.Revoked deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { String str = jp.getText(); if (StringUtils.isBlank(str)) { return null; }/*from w ww . j a va 2 s . c o m*/ String[] parts = str.split(":"); if (parts.length != 2) { throw new JsonSyntaxException(String.format( "Bad format for BlockchainBlock.Revoked. Should have 2 parts, but found %s.", parts.length)); } BlockchainBlock.Revoked result = new BlockchainBlock.Revoked(); int i = 0; result.setPubkey(parts[i++]); result.setSignature(parts[i++]); return result; }
From source file:org.eclipse.rdf4j.rio.rdfjson.RDFJSONParser.java
private void rdfJsonToHandlerInternal(final RDFHandler handler, final ValueFactory vf, final JsonParser jp) throws IOException, JsonParseException, RDFParseException, RDFHandlerException { if (jp.nextToken() != JsonToken.START_OBJECT) { reportFatalError("Expected RDF/JSON document to start with an Object", jp.getCurrentLocation()); }/*from www. ja v a 2 s . c o m*/ while (jp.nextToken() != JsonToken.END_OBJECT) { final String subjStr = jp.getCurrentName(); Resource subject = null; subject = subjStr.startsWith("_:") ? createNode(subjStr.substring(2)) : vf.createIRI(subjStr); if (jp.nextToken() != JsonToken.START_OBJECT) { reportFatalError("Expected subject value to start with an Object", jp.getCurrentLocation()); } boolean foundPredicate = false; while (jp.nextToken() != JsonToken.END_OBJECT) { final String predStr = jp.getCurrentName(); final IRI predicate = vf.createIRI(predStr); foundPredicate = true; if (jp.nextToken() != JsonToken.START_ARRAY) { reportFatalError("Expected predicate value to start with an array", jp.getCurrentLocation()); } boolean foundObject = false; while (jp.nextToken() != JsonToken.END_ARRAY) { if (jp.getCurrentToken() != JsonToken.START_OBJECT) { reportFatalError("Expected object value to start with an Object: subject=<" + subjStr + "> predicate=<" + predStr + ">", jp.getCurrentLocation()); } String nextValue = null; String nextType = null; String nextDatatype = null; String nextLanguage = null; final Set<String> nextContexts = new HashSet<String>(2); while (jp.nextToken() != JsonToken.END_OBJECT) { final String fieldName = jp.getCurrentName(); if (RDFJSONUtility.VALUE.equals(fieldName)) { if (nextValue != null) { reportError( "Multiple values found for a single object: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation(), RDFJSONParserSettings.FAIL_ON_MULTIPLE_OBJECT_VALUES); } jp.nextToken(); nextValue = jp.getText(); } else if (RDFJSONUtility.TYPE.equals(fieldName)) { if (nextType != null) { reportError( "Multiple types found for a single object: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation(), RDFJSONParserSettings.FAIL_ON_MULTIPLE_OBJECT_TYPES); } jp.nextToken(); nextType = jp.getText(); } else if (RDFJSONUtility.LANG.equals(fieldName)) { if (nextLanguage != null) { reportError( "Multiple languages found for a single object: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation(), RDFJSONParserSettings.FAIL_ON_MULTIPLE_OBJECT_LANGUAGES); } jp.nextToken(); nextLanguage = jp.getText(); } else if (RDFJSONUtility.DATATYPE.equals(fieldName)) { if (nextDatatype != null) { reportError( "Multiple datatypes found for a single object: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation(), RDFJSONParserSettings.FAIL_ON_MULTIPLE_OBJECT_DATATYPES); } jp.nextToken(); nextDatatype = jp.getText(); } else if (RDFJSONUtility.GRAPHS.equals(fieldName)) { if (jp.nextToken() != JsonToken.START_ARRAY) { reportError("Expected graphs to start with an array", jp.getCurrentLocation(), RDFJSONParserSettings.SUPPORT_GRAPHS_EXTENSION); } while (jp.nextToken() != JsonToken.END_ARRAY) { final String nextGraph = jp.getText(); nextContexts.add(nextGraph); } } else { reportError( "Unrecognised JSON field name for object: subject=" + subjStr + " predicate=" + predStr + " fieldname=" + fieldName, jp.getCurrentLocation(), RDFJSONParserSettings.FAIL_ON_UNKNOWN_PROPERTY); } } Value object = null; if (nextType == null) { reportFatalError("No type for object: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation()); } if (nextValue == null) { reportFatalError("No value for object: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation()); } if (RDFJSONUtility.LITERAL.equals(nextType)) { if (nextLanguage != null) { object = this.createLiteral(nextValue, nextLanguage, null, jp.getCurrentLocation()); } else if (nextDatatype != null) { object = this.createLiteral(nextValue, null, this.createURI(nextDatatype), jp.getCurrentLocation()); } else { object = this.createLiteral(nextValue, null, null, jp.getCurrentLocation()); } } else if (RDFJSONUtility.BNODE.equals(nextType)) { if (nextLanguage != null) { reportFatalError("Language was attached to a blank node object: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation()); } if (nextDatatype != null) { reportFatalError("Datatype was attached to a blank node object: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation()); } object = createNode(nextValue.substring(2)); } else if (RDFJSONUtility.URI.equals(nextType)) { if (nextLanguage != null) { reportFatalError("Language was attached to a uri object: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation()); } if (nextDatatype != null) { reportFatalError("Datatype was attached to a uri object: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation()); } object = vf.createIRI(nextValue); } foundObject = true; if (!nextContexts.isEmpty()) { for (final String nextContext : nextContexts) { final Resource context; if (nextContext.equals(RDFJSONUtility.NULL)) { context = null; } else if (nextContext.startsWith("_:")) { context = createNode(nextContext.substring(2)); } else { context = vf.createIRI(nextContext); } Statement st = vf.createStatement(subject, predicate, object, context); if (handler != null) { handler.handleStatement(st); } } } else { Statement st = vf.createStatement(subject, predicate, object); if (handler != null) { handler.handleStatement(st); } } } if (!foundObject) { reportFatalError("No object for predicate: subject=" + subjStr + " predicate=" + predStr, jp.getCurrentLocation()); } } if (!foundPredicate) { reportFatalError("No predicate for object: subject=" + subjStr, jp.getCurrentLocation()); } } }
From source file:org.hippoecm.frontend.service.restproxy.custom.json.deserializers.AnnotationJsonDeserializer.java
@SuppressWarnings("unchecked") @Override/*from www .j ava 2 s . c om*/ public Annotation deserialize(JsonParser jsonParser, DeserializationContext deserContext) throws IOException, JsonProcessingException { Annotation annotation = null; String annotationTypeName = null; Class<? extends Annotation> annotationClass = null; Map<String, Object> annotationAttributes = null; while (jsonParser.nextToken() != JsonToken.END_OBJECT) { // Read the '@class' field name jsonParser.nextToken(); // Now read the '@class' field value annotationTypeName = jsonParser.getText(); try { annotationClass = (Class<? extends Annotation>) Class.forName(annotationTypeName); annotationAttributes = new HashMap<String, Object>(annotationClass.getDeclaredMethods().length); while (jsonParser.nextToken() != JsonToken.END_OBJECT) { final String fieldName = jsonParser.getCurrentName(); final Method annotationAttribute = annotationClass.getDeclaredMethod(fieldName, new Class<?>[] {}); annotationAttributes.put(fieldName, deserializeAnnotationAttribute(annotationClass, annotationAttribute, jsonParser)); } // Annotation deserialization is done here break; } catch (ClassNotFoundException cnfe) { throw new AnnotationProcessingException("Error while processing annotation: " + annotationTypeName, cnfe); } catch (SecurityException se) { throw new AnnotationProcessingException("Error while processing annotation: " + annotationTypeName, se); } catch (NoSuchMethodException nsme) { if (log.isDebugEnabled()) { log.info("Error while processing annotation: " + annotationTypeName + ". " + nsme); } else { log.info("Error while processing annotation: {}. {}", annotationTypeName, nsme); } } } annotation = (Annotation) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class<?>[] { annotationClass }, new AnnotationProxyInvocationHandler(annotationClass, annotationAttributes)); return annotation; }