List of usage examples for com.fasterxml.jackson.core JsonParser getText
public abstract String getText() throws IOException, JsonParseException;
From source file:org.h2gis.drivers.geojson.GeoJsonReaderDriver.java
/** * Parses the GeoJSON data and set the values to the table. * * @throws IOException//from ww w . j a va2s . c o m * @throws SQLException */ private void parseData() throws IOException, SQLException { FileInputStream fis = null; try { fis = new FileInputStream(fileName); JsonParser jp = jsFactory.createParser(fis); jp.nextToken();//START_OBJECT jp.nextToken(); // field_name (type) jp.nextToken(); // value_string (FeatureCollection) String geomType = jp.getText(); if (geomType.equalsIgnoreCase(GeoJsonField.FEATURECOLLECTION)) { parseFeatures(jp); } else { throw new SQLException( "Malformed GeoJSON file. Expected 'FeatureCollection', found '" + geomType + "'"); } jp.close(); } catch (FileNotFoundException ex) { throw new SQLException(ex); } finally { try { if (fis != null) { fis.close(); } } catch (IOException ex) { throw new SQLException(ex); } } }
From source file:org.oscim.utils.overpass.OverpassAPIReader.java
private void parseRelation(JsonParser jp) throws JsonParseException, IOException { long id = 0;//from w w w .j a v a 2s. com TagSet tags = null; ArrayList<TmpRelation> members = new ArrayList<TmpRelation>(); while (jp.nextToken() != JsonToken.END_OBJECT) { String name = jp.getCurrentName(); jp.nextToken(); if ("id".equals(name)) id = jp.getLongValue(); else if ("members".equals(name)) { while (jp.nextToken() != JsonToken.END_ARRAY) { TmpRelation member = new TmpRelation(); while (jp.nextToken() != JsonToken.END_OBJECT) { name = jp.getCurrentName(); jp.nextToken(); if ("type".equals(name)) member.type = jp.getText(); else if ("ref".equals(name)) member.id = Long.valueOf(jp.getLongValue()); else if ("role".equals(name)) member.role = jp.getText(); } members.add(member); } } else if ("tags".equals(name)) tags = parseTags(jp); } OsmRelation relation = new OsmRelation(tags, id, members.size()); ownRelations.add(relation); relationsById.put(Long.valueOf(id), relation); relationMembersForRelation.put(relation, members); }
From source file:org.zapto.samhippiemiddlepoolchecker.Values.java
PoolError update(String address, URL... urls) { //error is returned at the end PoolError error = PoolError.NONE;/* w w w . jav a 2s. c o m*/ //Aborting the http to save data throws an error. This says if we should cover it up. boolean actualNetworkError = true; //reset the values. If they are never changed, then 0 is the most accurate number accepted = 0; rejected = 0; immature = 0; unexchanged = 0; balance = 0; paid = 0; try { //streaming the json HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(urls[0].toString()); HttpResponse response = client.execute(request); InputStream in = response.getEntity().getContent(); JsonFactory factory = new JsonFactory(); JsonParser parser = factory.createParser(in); boolean addressFound = false;//see if we need to return and address not found error mainParse: //label for breaking when address is found while (parser.nextToken() != JsonToken.END_OBJECT)//finding "report" { if ("report".equals(parser.getCurrentName()))//beginning of report { boolean firstRun = true; while (parser.nextToken() == JsonToken.START_ARRAY)//each address has its own array { if (firstRun)//this jumps over some junk at the begining { parser.nextToken(); firstRun = false; } parser.nextToken();//have to skip some junk each time if (address.equals(parser.getText()))//we have found our address { addressFound = true;//this prevents an address not found error from being returned while (parser.nextToken() != JsonToken.END_ARRAY) { //getting each of our values from the array. //having -420 as a default lets us see if the value is there while not using up 0 if ("megahashesPerSecond".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { accepted = value; } } if ("rejectedMegahashesPerSecond".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { rejected = value; } } if ("immatureBalance".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { immature = value; } } if ("unexchangedBalance".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { unexchanged = value; } } if ("bitcoinBalance".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { balance = value; } } if ("paidOut".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { paid = value; } } } break mainParse;//no need to download any more addresses } else { while (parser.nextToken() != JsonToken.END_ARRAY) { } //skipping over an unwanted address } } } } if (!addressFound)//we never found an address { error = PoolError.ADDRESS; } actualNetworkError = false; request.abort();//should stop any extra data usage, also forces ioexception (which is ignored) parser.close(); in.close(); } catch (MalformedURLException e) { if (actualNetworkError) { error = PoolError.NETWORK; } } catch (IOException e) { if (actualNetworkError) { error = PoolError.NETWORK; } } return error; }
From source file:org.h2gis.drivers.geojson.GeoJsonReaderDriver.java
/** * Parses geometry metadata.// w w w .j av a 2 s .c o m * * @param jp * @param metadataBuilder */ private void parseGeometryMetadata(JsonParser jp, StringBuilder metadataBuilder) throws IOException, SQLException { jp.nextToken(); //START_OBJECT { jp.nextToken(); // FIELD_NAME type jp.nextToken(); //VALUE_STRING Point String geomType = jp.getText(); if (geomType.equalsIgnoreCase(GeoJsonField.POINT)) { checkCoordinates(jp, metadataBuilder, GeoJsonField.POINT); } else if (geomType.equalsIgnoreCase(GeoJsonField.LINESTRING)) { checkCoordinates(jp, metadataBuilder, GeoJsonField.LINESTRING); } else if (geomType.equalsIgnoreCase(GeoJsonField.POLYGON)) { checkCoordinates(jp, metadataBuilder, GeoJsonField.POLYGON); } else if (geomType.equalsIgnoreCase(GeoJsonField.MULTIPOINT)) { checkCoordinates(jp, metadataBuilder, GeoJsonField.MULTIPOINT); } else if (geomType.equalsIgnoreCase(GeoJsonField.MULTILINESTRING)) { checkCoordinates(jp, metadataBuilder, GeoJsonField.MULTILINESTRING); } else if (geomType.equalsIgnoreCase(GeoJsonField.MULTIPOLYGON)) { checkCoordinates(jp, metadataBuilder, GeoJsonField.MULTIPOLYGON); } else if (geomType.equalsIgnoreCase(GeoJsonField.GEOMETRYCOLLECTION)) { jp.nextToken();//START geometries array if (jp.getText().equalsIgnoreCase(GeoJsonField.GEOMETRIES)) { jp.skipChildren(); if (isH2) { metadataBuilder.append("THE_GEOM GEOMETRY,"); } else { metadataBuilder.append("THE_GEOM GEOMETRY(geometry,").append(parsedSRID).append("),"); } } else { throw new SQLException( "Malformed GeoJSON file. Expected 'geometries', found '" + jp.getText() + "'"); } } else { throw new SQLException("Unsupported geometry : " + geomType); } }
From source file:com.cedarsoft.serialization.test.performance.XmlParserPerformance.java
private void benchParse(@Nonnull JsonFactory factory, @Nonnull byte[] contentSample) throws XMLStreamException, IOException { for (int i = 0; i < BIG; i++) { JsonParser parser = factory.createParser(contentSample); assertEquals(JsonToken.START_OBJECT, parser.nextToken()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("id", parser.getCurrentName()); assertEquals(JsonToken.VALUE_STRING, parser.nextToken()); String id = parser.getText(); assertEquals("Canon Raw", id); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("dependent", parser.getCurrentName()); assertEquals(JsonToken.VALUE_FALSE, parser.nextToken()); boolean dependent = parser.getBooleanValue(); assertFalse(dependent);//from w w w .j a v a 2 s . c o m assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("extension", parser.getCurrentName()); assertEquals(JsonToken.START_OBJECT, parser.nextToken()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("extension", parser.getCurrentName()); assertEquals(JsonToken.VALUE_STRING, parser.nextToken()); String extension = parser.getText(); assertEquals("cr2", extension); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("default", parser.getCurrentName()); assertEquals(JsonToken.VALUE_TRUE, parser.nextToken()); boolean isDefault = parser.getBooleanValue(); assertTrue(isDefault); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("delimiter", parser.getCurrentName()); assertEquals(JsonToken.VALUE_STRING, parser.nextToken()); String delimiter = parser.getText(); assertEquals(".", delimiter); assertEquals(JsonToken.END_OBJECT, parser.nextToken()); assertEquals(JsonToken.END_OBJECT, parser.nextToken()); assertNull(parser.nextToken()); parser.close(); FileType type = new FileType(id, new Extension(delimiter, extension, isDefault), dependent); assertNotNull(type); } }
From source file:org.mongojack.internal.object.BsonObjectGenerator.java
@Override public void copyCurrentEvent(JsonParser jp) throws IOException { JsonToken t = jp.getCurrentToken();//from w ww.j a v a2 s .c o m switch (t) { case START_OBJECT: writeStartObject(); break; case END_OBJECT: writeEndObject(); break; case START_ARRAY: writeStartArray(); break; case END_ARRAY: writeEndArray(); break; case FIELD_NAME: writeFieldName(jp.getCurrentName()); break; case VALUE_STRING: if (jp.hasTextCharacters()) { writeString(jp.getTextCharacters(), jp.getTextOffset(), jp.getTextLength()); } else { writeString(jp.getText()); } break; case VALUE_NUMBER_INT: switch (jp.getNumberType()) { case INT: writeNumber(jp.getIntValue()); break; case BIG_INTEGER: writeNumber(jp.getBigIntegerValue()); break; default: writeNumber(jp.getLongValue()); } break; case VALUE_NUMBER_FLOAT: switch (jp.getNumberType()) { case BIG_DECIMAL: writeNumber(jp.getDecimalValue()); break; case FLOAT: writeNumber(jp.getFloatValue()); break; default: writeNumber(jp.getDoubleValue()); } break; case VALUE_TRUE: writeBoolean(true); break; case VALUE_FALSE: writeBoolean(false); break; case VALUE_NULL: writeNull(); break; case VALUE_EMBEDDED_OBJECT: writeObject(jp.getEmbeddedObject()); break; } }
From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java
@Override public Genome parseGenomes(final InputStream inputStream) { checkNotNull(inputStream);/*from w w w .ja v a2s . com*/ JsonParser parser = null; try { parser = jsonFactory.createParser(inputStream); parser.nextToken(); String id = null; String values = null; while (parser.nextToken() != JsonToken.END_OBJECT) { String field = parser.getCurrentName(); parser.nextToken(); if ("id".equals(field)) { id = parser.getText(); } else if ("genome".equals(field)) { values = parser.getText(); } } return new Genome(id, values); } catch (IOException e) { logger.warn("could not parse genomes", e); } finally { try { inputStream.close(); } catch (Exception e) { // ignored } try { parser.close(); } catch (Exception e) { // ignored } } return null; }
From source file:org.h2gis.drivers.geojson.GeoJsonReaderDriver.java
/** * Parses the properties of a feature/*w ww . j a v a2 s.c o m*/ * * Syntax: * * "properties": {"prop0": "value0"} * * @param jsParser */ private void parseProperties(JsonParser jp, int fieldIndex) throws IOException, SQLException { jp.nextToken();//START_OBJECT { while (jp.nextToken() != JsonToken.END_OBJECT) { JsonToken value = jp.nextToken(); if (value == JsonToken.VALUE_STRING) { getPreparedStatement().setObject(fieldIndex, jp.getText()); fieldIndex++; } else if (value == JsonToken.VALUE_TRUE) { getPreparedStatement().setObject(fieldIndex, jp.getValueAsBoolean()); fieldIndex++; } else if (value == JsonToken.VALUE_FALSE) { getPreparedStatement().setObject(fieldIndex, jp.getValueAsBoolean()); fieldIndex++; } else if (value == JsonToken.VALUE_NUMBER_FLOAT) { getPreparedStatement().setObject(fieldIndex, jp.getValueAsDouble()); fieldIndex++; } else if (value == JsonToken.VALUE_NUMBER_INT) { getPreparedStatement().setObject(fieldIndex, jp.getValueAsInt()); fieldIndex++; } else if (value == JsonToken.VALUE_NULL) { getPreparedStatement().setObject(fieldIndex, null); fieldIndex++; } else { //ignore other value } } }
From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java
@Override public PersonalGenomeClientException parseException(final InputStream inputStream) { checkNotNull(inputStream);/* w ww. ja v a2 s.co m*/ JsonParser parser = null; try { parser = jsonFactory.createParser(inputStream); parser.nextToken(); String error = null; String errorDescription = null; while (parser.nextToken() != JsonToken.END_OBJECT) { String field = parser.getCurrentName(); parser.nextToken(); if ("error".equals(field)) { error = parser.getText(); } else if ("error_description".equals(field)) { errorDescription = parser.getText(); } } if ("access_denied".equals(error)) { return new AccessDeniedException(errorDescription); } else if ("invalid_client".equals(error)) { return new InvalidClientException(errorDescription); } else if ("invalid_request".equals(error)) { return new InvalidRequestException(errorDescription); } else if ("invalid_scope".equals(error)) { return new InvalidScopeException(errorDescription); } return new PersonalGenomeClientException(errorDescription); } catch (IOException e) { logger.warn("could not parse exception", e); } finally { try { inputStream.close(); } catch (Exception e) { // ignored } try { parser.close(); } catch (Exception e) { // ignored } } return new PersonalGenomeClientException("unknown error"); }
From source file:com.zenesis.qx.remote.RequestHandler.java
/** * Reads the next token and ensures that it is a field name called <code>fieldName</code>; leaves the current * token on the start of the field value * @param jp//from w w w . java 2 s. co m * @param fieldName * @throws ServletException * @throws IOException */ private void skipFieldName(JsonParser jp, String fieldName) throws ServletException, IOException { if (jp.nextToken() != JsonToken.FIELD_NAME) throw new ServletException("Cannot find field name - looking for " + fieldName + " found " + jp.getCurrentToken() + ":" + jp.getText()); String str = jp.getText(); if (!fieldName.equals(str)) throw new ServletException("Cannot find field called " + fieldName + " found " + str); jp.nextToken(); }