List of usage examples for com.fasterxml.jackson.core JsonParser getFloatValue
public abstract float getFloatValue() throws IOException, JsonParseException;
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 a v a 2 s . c o m*/ 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:org.example.testcases.BasicTypesDeSerializer.java
private BasicTypes readObject(JsonParser jp) throws IOException { BasicTypes basicTypes = new BasicTypes(); for (JsonToken jsonToken; (jsonToken = jp.nextToken()) != null && (jsonToken != END_OBJECT);) { if (FIELD_NAME != jsonToken) continue; final String fieldName = jp.getCurrentName(); switch (fieldName) { case "aString": jsonToken = jp.nextToken(); // read value basicTypes.aString = jp.getText(); break; case "aBoolean": jsonToken = jp.nextToken(); // read value basicTypes.aBoolean = jp.getBooleanValue(); break; case "aFloat": jsonToken = jp.nextToken(); // read value basicTypes.aFloat = jp.getFloatValue(); break; case "aDouble": jsonToken = jp.nextToken(); // read value basicTypes.aDouble = jp.getDoubleValue(); break; case "aInt": jsonToken = jp.nextToken(); // read value basicTypes.aInt = jp.getIntValue(); break; case "aShort": jsonToken = jp.nextToken(); // read value basicTypes.aShort = jp.getShortValue(); break; case "aByte": jsonToken = jp.nextToken(); // read value basicTypes.aByte = jp.getByteValue(); break; default:/* w ww . ja v a 2 s . c o m*/ // decide what to do; } } return basicTypes; }
From source file:org.apache.lucene.server.handlers.AddDocumentHandler.java
/** Parse one value for a field, which is either an * object matching the type of the field, or a {boost: * ..., value: ...}. *///from w w w .java 2 s .co m private static boolean parseOneValue(FieldDef fd, JsonParser p, Document doc) throws IOException { Object o = null; float boost = 1.0f; JsonToken token = p.nextToken(); if (token == JsonToken.START_ARRAY) { if ("hierarchy".equals(fd.faceted) || fd.valueType == FieldDef.FieldValueType.LAT_LON) { o = getNativeValue(fd, token, p); } else { if (fd.multiValued == false) { fail(fd.name, "expected single value, not array, since this field is not multiValued"); } while (true) { if (!parseOneValue(fd, p, doc)) { break; } } return true; } } else { if (token == JsonToken.END_ARRAY) { assert fd.multiValued; return false; } if (fd.fieldType.indexOptions() != IndexOptions.NONE && token == JsonToken.START_OBJECT) { // Parse a {boost: X, value: Y} while (true) { token = p.nextToken(); if (token == JsonToken.END_OBJECT) { break; } assert token == JsonToken.FIELD_NAME; String key = p.getText(); if (key.equals("boost")) { token = p.nextToken(); if (token == JsonToken.VALUE_NUMBER_INT || token == JsonToken.VALUE_NUMBER_FLOAT) { boost = p.getFloatValue(); } else { fail(fd.name, "boost in inner object field value must have float or int value; got: " + token); } } else if (key.equals("value")) { o = getNativeValue(fd, p.nextToken(), p); } else { fail(fd.name, "unrecognized json key \"" + key + "\" in inner object field value; must be boost or value"); } } if (o == null) { fail(fd.name, "missing 'value' key"); } } else { // Parse a native value: o = getNativeValue(fd, token, p); } } parseOneNativeValue(fd, doc, o, boost); return true; }
From source file:org.debezium.core.doc.JacksonReader.java
private Array parseArray(JsonParser parser) throws IOException { // Iterate over the fields in the top-level document ... BasicArray array = new BasicArray(); JsonToken token = parser.nextToken(); while (token != JsonToken.END_ARRAY) { switch (token) { case START_OBJECT: array.add(parseDocument(parser, true)); break; case START_ARRAY: array.add(parseArray(parser)); break; case VALUE_STRING: array.add(parser.getValueAsString()); break; case VALUE_TRUE: array.add(true);/*from www. j ava2s.c o m*/ break; case VALUE_FALSE: array.add(false); break; case VALUE_NULL: array.addNull(); break; case VALUE_NUMBER_FLOAT: case VALUE_NUMBER_INT: switch (parser.getNumberType()) { case FLOAT: array.add(parser.getFloatValue()); break; case DOUBLE: array.add(parser.getDoubleValue()); break; case BIG_DECIMAL: array.add(parser.getDecimalValue()); break; case INT: array.add(parser.getIntValue()); break; case LONG: array.add(parser.getLongValue()); break; case BIG_INTEGER: array.add(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 FIELD_NAME: throw new JsonParseException("Not expecting a FIELD_NAME token", 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 array; }
From source file:io.debezium.document.JacksonReader.java
private Array parseArray(JsonParser parser, boolean nested) throws IOException { // Iterate over the values in the array ... BasicArray array = new BasicArray(); JsonToken token = null;/*from w w w . j a va 2s.c om*/ if (!nested) { // We expect the START_ARRAY token ... token = parser.nextToken(); if (!nested && token != JsonToken.START_ARRAY) { throw new IOException("Expected data to start with an Array, but was " + token); } } token = parser.nextToken(); while (token != JsonToken.END_ARRAY) { switch (token) { case START_OBJECT: array.add(parseDocument(parser, true)); break; case START_ARRAY: array.add(parseArray(parser, true)); break; case VALUE_STRING: array.add(parser.getValueAsString()); break; case VALUE_TRUE: array.add(true); break; case VALUE_FALSE: array.add(false); break; case VALUE_NULL: array.addNull(); break; case VALUE_NUMBER_FLOAT: case VALUE_NUMBER_INT: switch (parser.getNumberType()) { case FLOAT: array.add(parser.getFloatValue()); break; case DOUBLE: array.add(parser.getDoubleValue()); break; case BIG_DECIMAL: array.add(parser.getDecimalValue()); break; case INT: array.add(parser.getIntValue()); break; case LONG: array.add(parser.getLongValue()); break; case BIG_INTEGER: array.add(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 FIELD_NAME: throw new JsonParseException("Not expecting a FIELD_NAME token", 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 array; }
From source file:com.tage.calcite.adapter.druid.DruidConnectionImpl.java
private void parseField(List<String> fieldNames, List<Primitive> fieldTypes, Row.RowBuilder rowBuilder, JsonParser parser) throws IOException { final String fieldName = parser.getCurrentName(); // Move to next token, which is name's value JsonToken token = parser.nextToken(); int i = fieldNames.indexOf(fieldName); if (i < 0) { return;// w ww . jav a 2 s. c o m } switch (token) { case VALUE_NUMBER_INT: case VALUE_NUMBER_FLOAT: Primitive type = fieldTypes.get(i); if (type == null) { if (token == JsonToken.VALUE_NUMBER_INT) { type = Primitive.INT; } else { type = Primitive.FLOAT; } } switch (type) { case BYTE: rowBuilder.set(i, parser.getIntValue()); break; case SHORT: rowBuilder.set(i, parser.getShortValue()); break; case INT: rowBuilder.set(i, parser.getIntValue()); break; case LONG: rowBuilder.set(i, parser.getLongValue()); break; case FLOAT: rowBuilder.set(i, parser.getFloatValue()); break; case DOUBLE: rowBuilder.set(i, parser.getDoubleValue()); break; } break; case VALUE_TRUE: rowBuilder.set(i, true); break; case VALUE_FALSE: rowBuilder.set(i, false); break; case VALUE_NULL: break; default: rowBuilder.set(i, parser.getText()); } }
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;//from www. ja v a2s.co 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.mongojack.internal.object.BsonObjectGenerator.java
@Override public void copyCurrentEvent(JsonParser jp) throws IOException { JsonToken t = jp.getCurrentToken();/*from w w w . ja va2 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:io.debezium.document.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;/*from ww w.j a va2 s.c om*/ 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, true)); 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.commonjava.maven.atlas.graph.jackson.ProjectRelationshipDeserializer.java
@Override public T deserialize(final JsonParser jp, final DeserializationContext ctx) throws JsonProcessingException, IOException { Map<String, Object> ast = new HashMap<String, Object>(); Map<String, JsonLocation> locations = new HashMap<String, JsonLocation>(); JsonToken token = jp.getCurrentToken(); String currentField = null;/*from w w w . ja v a 2 s . c o m*/ List<String> currentArry = null; Logger logger = LoggerFactory.getLogger(getClass()); do { // logger.info( "Token: {}", token ); switch (token) { case START_ARRAY: { // logger.info( "Starting array for field: {}", currentField ); currentArry = new ArrayList<String>(); break; } case END_ARRAY: // logger.info( "Ending array for field: {}", currentField ); locations.put(currentField, jp.getCurrentLocation()); ast.put(currentField, currentArry); currentArry = null; break; case FIELD_NAME: currentField = jp.getCurrentName(); break; case VALUE_STRING: if (currentArry != null) { currentArry.add(jp.getText()); } else { locations.put(currentField, jp.getCurrentLocation()); ast.put(currentField, jp.getText()); } break; case VALUE_NUMBER_INT: locations.put(currentField, jp.getCurrentLocation()); ast.put(currentField, jp.getIntValue()); break; case VALUE_NUMBER_FLOAT: locations.put(currentField, jp.getCurrentLocation()); ast.put(currentField, jp.getFloatValue()); break; case VALUE_TRUE: locations.put(currentField, jp.getCurrentLocation()); ast.put(currentField, Boolean.TRUE); break; case VALUE_FALSE: locations.put(currentField, jp.getCurrentLocation()); ast.put(currentField, Boolean.FALSE); break; } token = jp.nextToken(); } while (token != JsonToken.END_OBJECT); StringBuilder sb = new StringBuilder(); sb.append("AST is:"); for (String field : ast.keySet()) { Object value = ast.get(field); sb.append("\n ").append(field).append(" = "); if (value == null) { sb.append("null"); } else { sb.append(value).append(" (type: ").append(value.getClass().getSimpleName()).append(")"); } } logger.debug(sb.toString()); final RelationshipType type = RelationshipType.getType((String) ast.get(RELATIONSHIP_TYPE)); final String uri = (String) ast.get(POM_LOCATION_URI); URI pomLocation; if (uri == null) { pomLocation = RelationshipUtils.POM_ROOT_URI; } else { try { pomLocation = new URI(uri); } catch (final URISyntaxException e) { throw new JsonParseException("Invalid " + POM_LOCATION_URI + ": '" + uri + "': " + e.getMessage(), locations.get(POM_LOCATION_URI), e); } } Collection<URI> sources = new HashSet<URI>(); List<String> srcs = (List<String>) ast.get(SOURCE_URIS); if (srcs != null) { for (String u : srcs) { try { sources.add(new URI(u)); } catch (URISyntaxException e) { throw new JsonParseException("Failed to parse source URI: " + u, locations.get(SOURCE_URIS)); } } } String decl = (String) ast.get(DECLARING_REF); final ProjectVersionRef declaring = SimpleProjectVersionRef.parse(decl); String tgt = (String) ast.get(TARGET_REF); Integer index = (Integer) ast.get(INDEX); if (index == null) { index = 0; } // handle null implicitly by comparing to true. boolean managed = Boolean.TRUE.equals(ast.get(MANAGED)); boolean inherited = Boolean.TRUE.equals(ast.get(INHERITED)); boolean mixin = Boolean.TRUE.equals(ast.get(MIXIN)); boolean optional = Boolean.TRUE.equals(ast.get(OPTIONAL)); ProjectRelationship<?, ?> rel = null; switch (type) { case DEPENDENCY: { final ArtifactRef target = SimpleArtifactRef.parse(tgt); String scp = (String) ast.get(SCOPE); final DependencyScope scope; if (scp == null) { scope = DependencyScope.compile; } else { scope = DependencyScope.getScope(scp); } rel = new SimpleDependencyRelationship(sources, pomLocation, declaring, target, scope, index, managed, inherited, optional); break; } case EXTENSION: { final ProjectVersionRef target = SimpleProjectVersionRef.parse(tgt); rel = new SimpleExtensionRelationship(sources, pomLocation, declaring, target, index, inherited); break; } case PARENT: { final ProjectVersionRef target = SimpleProjectVersionRef.parse(tgt); rel = new SimpleParentRelationship(sources, declaring, target); break; } case PLUGIN: { final ProjectVersionRef target = SimpleProjectVersionRef.parse(tgt); Boolean report = (Boolean) ast.get(REPORTING); rel = new SimplePluginRelationship(sources, pomLocation, declaring, target, index, managed, Boolean.TRUE.equals(report), inherited); break; } case PLUGIN_DEP: { String plug = (String) ast.get(PLUGIN_REF); if (plug == null) { throw new JsonParseException( "No plugin reference (field: " + PLUGIN_REF + ") found in plugin-dependency relationship!", jp.getCurrentLocation()); } final ProjectRef plugin = SimpleProjectRef.parse(plug); final ArtifactRef target = SimpleArtifactRef.parse(tgt); rel = new SimplePluginDependencyRelationship(sources, pomLocation, declaring, plugin, target, index, managed, inherited); break; } case BOM: { final ProjectVersionRef target = SimpleProjectVersionRef.parse(tgt); rel = new SimpleBomRelationship(sources, pomLocation, declaring, target, index, inherited, mixin); break; } } return (T) rel; }