List of usage examples for com.fasterxml.jackson.core JsonParser getDoubleValue
public abstract double getDoubleValue() throws IOException, JsonParseException;
From source file:org.dbrain.data.jackson.serializers.JacksonSerializationUtils.java
public static Value parseValue(JsonParser parser, DeserializationContext ctxt) throws IOException { JsonToken token = getToken(parser);//from w w w. j a v a 2s . c o m if (token != null) { Value result; switch (token) { case VALUE_STRING: result = Value.of(parser.getValueAsString()); break; case VALUE_NUMBER_FLOAT: result = Value.of(parser.getDoubleValue()); break; case VALUE_NUMBER_INT: result = Value.of(parser.getBigIntegerValue()); break; case VALUE_NULL: result = NullValueImpl.NULL; break; case VALUE_TRUE: result = Value.of(Boolean.TRUE); break; case VALUE_FALSE: result = Value.of(Boolean.FALSE); break; case START_OBJECT: { ValueMap values = ValueMap.newInstance(); while (parser.nextToken() == JsonToken.FIELD_NAME) { String key = parser.getCurrentName(); parser.nextToken(); Value v = parseValue(parser, ctxt); if (v == null) { throw ctxt.wrongTokenException(parser, JsonToken.START_OBJECT, "Expected Value"); } values.put(key, v); } if (getToken(parser) == JsonToken.END_OBJECT) { parser.clearCurrentToken(); } else { throw ctxt.wrongTokenException(parser, JsonToken.END_OBJECT, null); } result = values; } break; case START_ARRAY: { ValueList values = ValueList.newInstance(); while (parser.nextToken() != JsonToken.END_ARRAY) { Value v = parseValue(parser, ctxt); if (v == null) { throw ctxt.wrongTokenException(parser, JsonToken.START_OBJECT, "Expected Value"); } values.add(v); } if (getToken(parser) == JsonToken.END_ARRAY) { parser.clearCurrentToken(); } else { throw ctxt.wrongTokenException(parser, JsonToken.END_ARRAY, null); } result = values; } break; default: throw ctxt.wrongTokenException(parser, JsonToken.START_OBJECT, "Expected Value"); } return result; } else { return null; } }
From source file:org.apache.lucene.server.handlers.AddDocumentHandler.java
/** Parses the current json token into the corresponding * java object. *//* www . j av a 2 s. com*/ private static Object getNativeValue(FieldDef fd, JsonToken token, JsonParser p) throws IOException { Object o; if (token == JsonToken.VALUE_STRING) { o = p.getText(); } else if (token == JsonToken.VALUE_NUMBER_INT) { o = Long.valueOf(p.getLongValue()); } else if (token == JsonToken.VALUE_NUMBER_FLOAT) { o = Double.valueOf(p.getDoubleValue()); } else if (token == JsonToken.VALUE_TRUE) { o = Boolean.TRUE; } else if (token == JsonToken.VALUE_FALSE) { o = Boolean.FALSE; } else if (fd.faceted.equals("hierarchy") && token == JsonToken.START_ARRAY) { if (fd.multiValued == false) { List<String> values = new ArrayList<>(); while (true) { token = p.nextToken(); if (token == JsonToken.END_ARRAY) { break; } else if (token != JsonToken.VALUE_STRING) { if (token == JsonToken.START_ARRAY) { fail(fd.name, "expected array of strings, but saw array inside array"); } else { fail(fd.name, "expected array of strings, but saw " + token + " inside array"); } } values.add(p.getText()); } o = values; } else { List<List<String>> values = new ArrayList<>(); while (true) { token = p.nextToken(); if (token == JsonToken.END_ARRAY) { break; } else if (token == JsonToken.START_ARRAY) { List<String> sub = new ArrayList<>(); values.add(sub); while (true) { token = p.nextToken(); if (token == JsonToken.VALUE_STRING) { sub.add(p.getText()); } else if (token == JsonToken.END_ARRAY) { break; } else { fail(fd.name, "expected array of strings or array of array of strings, but saw " + token + " inside inner array"); } } } else if (token == JsonToken.VALUE_STRING) { List<String> sub = new ArrayList<>(); values.add(sub); sub.add(p.getText()); } else if (token == JsonToken.START_ARRAY) { fail(fd.name, "expected array of strings, but saw array inside array"); } else { fail(fd.name, "expected array of strings, but saw " + token + " inside array"); } } o = values; } } else if (fd.valueType == FieldDef.FieldValueType.LAT_LON) { if (token != JsonToken.START_ARRAY) { fail(fd.name, "latlon field must be [lat, lon] value; got " + token); } double[] latLon = new double[2]; token = p.nextToken(); if (token != JsonToken.VALUE_NUMBER_FLOAT) { fail(fd.name, "latlon field must be [lat, lon] value; got " + token); } latLon[0] = p.getDoubleValue(); token = p.nextToken(); if (token != JsonToken.VALUE_NUMBER_FLOAT) { fail(fd.name, "latlon field must be [lat, lon] value; got " + token); } latLon[1] = p.getDoubleValue(); token = p.nextToken(); if (token != JsonToken.END_ARRAY) { fail(fd.name, "latlon field must be [lat, lon] value; got " + token); } o = latLon; } else { String message; if (token == JsonToken.VALUE_NULL) { message = "null field value not supported; just omit this field from the document instead"; } else { message = "value in inner object field value should be string, int/long, float/double or boolean; got " + token; } fail(fd.name, message); // Dead code but compiler disagrees: o = null; } return o; }
From source file:com.cinnober.msgcodec.json.TypeScannerJsonParserTest.java
private void assertNextFloatValue(double exp, JsonParser p) throws IOException { assertEquals(JsonToken.VALUE_NUMBER_FLOAT, p.nextToken()); assertEquals(exp, p.getDoubleValue(), 1e-4); }
From source file:com.netflix.hollow.jsonadapter.util.JsonUtil.java
private static void print(JsonParser parser, JsonToken token, int index, PrintStream out) throws Exception { if (index == 0) System.out.println("\n\n -----"); try {// www .j a v a 2 s. c o m while (token != null && token != JsonToken.END_OBJECT) { switch (token) { case START_ARRAY: print(index, String.format("fieldname=%s, token=%s", parser.getCurrentName(), token), out); print(parser, parser.nextToken(), index + 1, out); break; case START_OBJECT: print(index, String.format("fieldname=%s, token=%s", parser.getCurrentName(), token), out); print(parser, parser.nextToken(), index + 1, out); break; case VALUE_NUMBER_INT: print(index, String.format("fieldname=%s, token=%s, value=%s", parser.getCurrentName(), token, parser.getLongValue()), out); break; case VALUE_NUMBER_FLOAT: print(index, String.format("fieldname=%s, token=%s, value=%s", parser.getCurrentName(), token, parser.getDoubleValue()), out); break; case VALUE_NULL: print(index, String.format("fieldname=%s, token=%s, value=NULL", parser.getCurrentName(), token), out); break; case VALUE_STRING: print(index, String.format("fieldname=%s, token=%s, value=%s", parser.getCurrentName(), token, parser.getValueAsString()), out); break; case VALUE_FALSE: case VALUE_TRUE: print(index, String.format("fieldname=%s, token=%s, value=%s", parser.getCurrentName(), token, parser.getBooleanValue()), out); break; case FIELD_NAME: //print(index, String.format("fieldname=%s, token=%s", parser.getCurrentName(), token)); break; case END_ARRAY: case END_OBJECT: index--; break; default: } token = parser.nextToken(); } } catch (Exception ex) { ex.printStackTrace(); throw ex; } }
From source file:com.cedarsoft.serialization.jackson.ListSerializer.java
@Nullable protected Object deserializeElement(@Nonnull JsonParser deserializeFrom, int index) throws IOException { //noinspection EnumSwitchStatementWhichMissesCases switch (deserializeFrom.getCurrentToken()) { case VALUE_STRING: return deserializeFrom.getText(); case VALUE_NUMBER_INT: return deserializeFrom.getIntValue(); case VALUE_NUMBER_FLOAT: return deserializeFrom.getDoubleValue(); case VALUE_TRUE: return true; case VALUE_FALSE: return false; case VALUE_NULL: return null; }/* w w w .j a v a 2 s . co m*/ return deserializeFrom.getText(); }
From source file:net.openhft.chronicle.wire.benchmarks.Data.java
public void readFrom(JsonParser parser) throws IOException { parser.nextToken();// w w w. j a v a2 s .c o m while (parser.nextToken() != JsonToken.END_OBJECT) { String fieldname = parser.getCurrentName(); parser.nextToken(); switch (fieldname) { case "price": setPrice(parser.getDoubleValue()); break; case "flag": flag = parser.getBooleanValue(); break; case "text": setText(parser.getValueAsString()); break; case "side": side = Side.valueOf(parser.getValueAsString()); break; case "smallInt": smallInt = parser.getIntValue(); break; case "longInt": longInt = parser.getLongValue(); break; } } }
From source file:name.gumartinm.weather.information.parser.JPOSForecastParser.java
private void getForecastWeatherDataObjects(final Forecast forecastWeatherData, final JsonParser jParser, final String fieldname) throws JsonParseException, IOException { if ("cod".equals(fieldname)) { final String stringCod = jParser.getText(); forecastWeatherData.setCod(Long.valueOf(stringCod)); }//w w w .j a v a 2 s . c om if ("message".equals(fieldname)) { forecastWeatherData.setMessage(jParser.getDoubleValue()); } if ("city".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); final JsonToken nextToken = jParser.nextToken(); // move to // value if ("id".equals(namefield)) { forecastWeatherData.getCity().setId(jParser.getLongValue()); } if ("name".equals(namefield)) { forecastWeatherData.getCity().setName(jParser.getText()); } if ("coord".equals(namefield)) { if (nextToken == JsonToken.START_OBJECT) { this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield); } } if ("country".equals(namefield)) { forecastWeatherData.getCity().setCountry(jParser.getText()); } if ("population".equals(namefield)) { forecastWeatherData.getCity().setPopulation(jParser.getLongValue()); } } } if ("cnt".equals(fieldname)) { forecastWeatherData.setCnt(jParser.getIntValue()); } if ("coord".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("lon".equals(namefield)) { forecastWeatherData.getCity().getCoord().setLon(jParser.getDoubleValue()); } if ("lat".equals(namefield)) { forecastWeatherData.getCity().getCoord().setLat(jParser.getDoubleValue()); } } } if ("list".equals(fieldname)) { final name.gumartinm.weather.information.model.forecastweather.List list = new name.gumartinm.weather.information.model.forecastweather.List(); list.setTemp(new Temp()); list.setWeather(new ArrayList<Weather>()); forecastWeatherData.getList().add(list); while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); final JsonToken nextToken = jParser.nextToken(); // move to // value if ("dt".equals(namefield)) { list.setDt(jParser.getLongValue()); } if ("temp".equals(namefield)) { if (nextToken == JsonToken.START_OBJECT) { this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield); } } if ("pressure".equals(namefield)) { list.setPressure(jParser.getDoubleValue()); } if ("humidity".equals(namefield)) { list.setHumidity(jParser.getDoubleValue()); } if ("weather".equals(namefield)) { if (nextToken == JsonToken.START_ARRAY) { JsonToken tokenNext = jParser.nextToken(); while (tokenNext != JsonToken.END_ARRAY) { if (tokenNext == JsonToken.START_OBJECT) { this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield); } tokenNext = jParser.nextToken(); } } } if ("speed".equals(namefield)) { list.setSpeed(jParser.getDoubleValue()); } if ("deg".equals(namefield)) { list.setDeg(jParser.getDoubleValue()); } if ("clouds".equals(namefield)) { list.setClouds(jParser.getDoubleValue()); } if ("rain".equals(namefield)) { list.setRain(jParser.getDoubleValue()); } } } if ("temp".equals(fieldname)) { final name.gumartinm.weather.information.model.forecastweather.List list = forecastWeatherData.getList() .get((forecastWeatherData.getList().size() - 1)); while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("day".equals(namefield)) { list.getTemp().setDay(jParser.getDoubleValue()); } if ("min".equals(namefield)) { list.getTemp().setMin(jParser.getDoubleValue()); } if ("max".equals(namefield)) { list.getTemp().setMax(jParser.getDoubleValue()); } if ("night".equals(namefield)) { list.getTemp().setNight(jParser.getDoubleValue()); } if ("eve".equals(namefield)) { list.getTemp().setEve(jParser.getDoubleValue()); } if ("morn".equals(namefield)) { list.getTemp().setMorn(jParser.getDoubleValue()); } } } if ("weather".equals(fieldname)) { final name.gumartinm.weather.information.model.forecastweather.List list = forecastWeatherData.getList() .get((forecastWeatherData.getList().size() - 1)); final Weather weather = new 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()); } } list.getWeather().add(weather); } }
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()); }/*from www . j a v a2 s .c o m*/ 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.oscim.utils.overpass.OverpassAPIReader.java
private void parseNode(JsonParser jp) throws JsonParseException, IOException { long id = 0;//from w w w.j a va 2 s . 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: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 {/*w w w .j av a 2 s . 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); } }