List of usage examples for com.fasterxml.jackson.core JsonParser nextToken
public abstract JsonToken nextToken() throws IOException, JsonParseException;
From source file:data.DefaultExchanger.java
private void importDataFromArray(JsonParser parser, JdbcTemplate jdbcTemplate, int batchSize) throws IOException { int importedNodesCount = 0; final List<JsonNode> nodes = new ArrayList<>(); while (parser.nextToken() != JsonToken.END_ARRAY) { final JsonNode node = parser.readValueAsTree(); nodes.add(node);//w w w . j a v a 2 s . c o m if (nodes.size() == batchSize) { importedNodesCount += batchUpdate(jdbcTemplate, nodes).length; nodes.clear(); } } if (nodes.size() > 0) { importedNodesCount += batchUpdate(jdbcTemplate, nodes).length; } play.Logger.info("imported {{}} {}", importedNodesCount, getTable()); }
From source file:org.oscim.utils.overpass.OverpassAPIReader.java
private void parseWay(JsonParser jp) throws JsonParseException, IOException { long id = 0;// w w w. j a v a 2s . com TagSet tags = null; ArrayList<OsmNode> wayNodes = new ArrayList<OsmNode>(); while (jp.nextToken() != JsonToken.END_OBJECT) { String name = jp.getCurrentName(); jp.nextToken(); if ("id".equals(name)) id = jp.getLongValue(); else if ("nodes".equals(name)) { while (jp.nextToken() != JsonToken.END_ARRAY) { Long nodeId = Long.valueOf(jp.getLongValue()); OsmNode node = nodesById.get(nodeId); if (node != null) // log("missing node " + nodeId); // else wayNodes.add(node); } } else if ("tags".equals(name)) tags = parseTags(jp); } // log("way: "+ id + " " + wayNodes.size()); OsmWay way = new OsmWay(tags, id, wayNodes); ownWays.add(way); waysById.put(Long.valueOf(id), way); }
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 www . j a v a2s . c o 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, 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.gvnix.web.json.DataBinderDeserializer.java
/** * Deserializes JSON object into Map<String, String> format to use it in a * Spring {@link DataBinder}.//from w w w .j a v a 2s .co m * <p/> * Iterate over every object's property and delegates on * {@link #readField(JsonParser, DeserializationContext, JsonToken, String)} * * @param parser JSON parser * @param ctxt context * @param prefix object DataBinder path * @return property values * @throws IOException * @throws JsonProcessingException */ public Map<String, String> readObject(JsonParser parser, DeserializationContext ctxt, String prefix) throws IOException, JsonProcessingException { JsonToken t = parser.getCurrentToken(); if (t == JsonToken.START_OBJECT) { t = parser.nextToken(); // Skip it to locate on first object data token } // Deserialize object properties Map<String, String> deserObj = new HashMap<String, String>(); for (; t != JsonToken.END_OBJECT; t = parser.nextToken()) { Map<String, String> field = readField(parser, ctxt, t, prefix); deserObj.putAll(field); } return deserObj; }
From source file:org.gvnix.web.json.DataBinderDeserializer.java
/** * Deserializes JSON array into Map<String, String> format to use it in a * Spring {@link DataBinder}.//w ww . j a va 2 s.c o m * <p/> * Iterate over every array's item to generate a prefix for property names * on DataBinder style ( * <em>{prefix}[{index}].<em>) and delegates on {@link #readField(JsonParser, DeserializationContext, JsonToken, String)} * * @param parser JSON parser * @param ctxt context * @param prefix array dataBinder path * @return * @throws IOException * @throws JsonProcessingException */ protected Map<String, String> readArray(JsonParser parser, DeserializationContext ctxt, String prefix) throws IOException, JsonProcessingException { JsonToken t = parser.getCurrentToken(); if (t == JsonToken.START_ARRAY) { t = parser.nextToken(); // Skip it to locate on first array data token } // Deserialize array properties int i = 0; Map<String, String> deserObj = new HashMap<String, String>(); for (; t != JsonToken.END_ARRAY; t = parser.nextToken()) { // Property name must include prefix this way: // degrees[0].description Map<String, String> field = readField(parser, ctxt, t, prefix.concat("[").concat(Integer.toString(i++)).concat("].")); deserObj.putAll(field); } return deserObj; }
From source file:com.msopentech.odatajclient.engine.metadata.edm.EntityContainerDeserializer.java
@Override protected AbstractEntityContainer doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final AbstractEntityContainer entityContainer = ODataVersion.V3 == client.getWorkingVersion() ? new com.msopentech.odatajclient.engine.metadata.edm.v3.EntityContainer() : new com.msopentech.odatajclient.engine.metadata.edm.v4.EntityContainer(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { entityContainer.setName(jp.nextTextValue()); } else if ("Extends".equals(jp.getCurrentName())) { entityContainer.setExtends(jp.nextTextValue()); } else if ("LazyLoadingEnabled".equals(jp.getCurrentName())) { entityContainer.setLazyLoadingEnabled(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("IsDefaultEntityContainer".equals(jp.getCurrentName())) { entityContainer.setDefaultEntityContainer(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("EntitySet".equals(jp.getCurrentName())) { jp.nextToken();//from w w w. j a v a2s . co m if (entityContainer instanceof com.msopentech.odatajclient.engine.metadata.edm.v3.EntityContainer) { ((com.msopentech.odatajclient.engine.metadata.edm.v3.EntityContainer) entityContainer) .getEntitySets().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v3.EntitySet.class)); } else { ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntityContainer) entityContainer) .getEntitySets().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v4.EntitySet.class)); } } else if ("AssociationSet".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.metadata.edm.v3.EntityContainer) entityContainer) .getAssociationSets().add(jp.getCodec().readValue(jp, AssociationSet.class)); } else if ("Singleton".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntityContainer) entityContainer) .getSingletons().add(jp.getCodec().readValue(jp, Singleton.class)); } else if ("ActionImport".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntityContainer) entityContainer) .getActionImports().add(jp.getCodec().readValue(jp, ActionImport.class)); } else if ("FunctionImport".equals(jp.getCurrentName())) { jp.nextToken(); if (entityContainer instanceof com.msopentech.odatajclient.engine.metadata.edm.v3.EntityContainer) { ((com.msopentech.odatajclient.engine.metadata.edm.v3.EntityContainer) entityContainer) .getFunctionImports().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v3.FunctionImport.class)); } else { ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntityContainer) entityContainer) .getFunctionImports().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v4.FunctionImport.class)); } } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.metadata.edm.v4.EntityContainer) entityContainer) .setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return entityContainer; }
From source file:com.google.openrtb.json.OpenRtbJsonExtComplexReader.java
@SuppressWarnings("unchecked") private void readSingle(EB msg, JsonParser par, XB ext) throws IOException { if (isJsonObject) { startObject(par);//from w w w.j a v a 2 s. c om } boolean extRead = false; JsonToken tokLast = par.getCurrentToken(); JsonLocation locLast = par.getCurrentLocation(); while (endObject(par)) { read(ext, par); if (par.getCurrentToken() != tokLast || !par.getCurrentLocation().equals(locLast)) { extRead = true; par.nextToken(); tokLast = par.getCurrentToken(); locLast = par.getCurrentLocation(); } else { break; } } if (extRead) { msg.setExtension(key, ext.build()); } if (isJsonObject) { par.nextToken(); } }
From source file:org.seedstack.seed.core.internal.data.DataManagerImpl.java
@Override public void importData(InputStream inputStream, String acceptGroup, String acceptName, boolean clear) { Set<DataImporter<Object>> usedDataImporters = new HashSet<>(); try {//from w w w . java2 s . co m ParsingState state = ParsingState.START; String group = null; String name = null; JsonParser jsonParser = this.jsonFactory .createParser(new InputStreamReader(inputStream, Charset.forName(UTF_8))); JsonToken jsonToken = jsonParser.nextToken(); while (jsonToken != null) { switch (state) { case START: if (jsonToken == JsonToken.START_ARRAY) { state = ParsingState.DEFINITION_START; } else { throwParsingError(jsonParser.getCurrentLocation(), "start array expected"); } break; case DEFINITION_START: if (jsonToken == JsonToken.START_OBJECT) { state = ParsingState.DEFINITION_GROUP; } else { throwParsingError(jsonParser.getCurrentLocation(), "start object expected"); } break; case DEFINITION_GROUP: if (jsonToken == JsonToken.FIELD_NAME && GROUP.equals(jsonParser.getCurrentName())) { group = jsonParser.nextTextValue(); state = ParsingState.DEFINITION_NAME; } else { throwParsingError(jsonParser.getCurrentLocation(), "group field expected"); } break; case DEFINITION_NAME: if (jsonToken == JsonToken.FIELD_NAME && NAME.equals(jsonParser.getCurrentName())) { name = jsonParser.nextTextValue(); state = ParsingState.DEFINITION_ITEMS; } else { throwParsingError(jsonParser.getCurrentLocation(), "name field expected"); } break; case DEFINITION_ITEMS: if (jsonToken == JsonToken.FIELD_NAME && ITEMS.equals(jsonParser.getCurrentName())) { usedDataImporters.add(consumeItems(jsonParser, group, name, acceptGroup, acceptName)); state = ParsingState.DEFINITION_END; } else { throwParsingError(jsonParser.getCurrentLocation(), "items field expected"); } break; case DEFINITION_END: if (jsonToken == JsonToken.END_OBJECT) { group = null; name = null; state = ParsingState.END; } else { throwParsingError(jsonParser.getCurrentLocation(), "end object expected"); } break; case END: if (jsonToken == JsonToken.START_OBJECT) { state = ParsingState.DEFINITION_GROUP; } else if (jsonToken == JsonToken.END_ARRAY) { state = ParsingState.START; } else { throwParsingError(jsonParser.getCurrentLocation(), "start object or end array expected"); } break; default: throwParsingError(jsonParser.getCurrentLocation(), "unexpected parser state"); } jsonToken = jsonParser.nextToken(); } } catch (Exception e1) { for (DataImporter<Object> usedDataImporter : usedDataImporters) { try { usedDataImporter.rollback(); } catch (Exception e2) { e2.initCause(e1); throw SeedException.wrap(e2, DataErrorCode.FAILED_TO_ROLLBACK_IMPORT).put(IMPORTER_CLASS, usedDataImporter.getClass().getName()); } } throw SeedException.wrap(e1, DataErrorCode.IMPORT_FAILED); } for (DataImporter<Object> usedDataImporter : usedDataImporters) { try { usedDataImporter.commit(clear); } catch (Exception e) { throw SeedException.wrap(e, DataErrorCode.FAILED_TO_COMMIT_IMPORT).put(IMPORTER_CLASS, usedDataImporter.getClass().getName()); } } }
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 va 2 s . c o m 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:com.msopentech.odatajclient.engine.data.metadata.edm.EntityContainerDeserializer.java
@Override protected AbstractEntityContainer doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final AbstractEntityContainer entityContainer = ODataVersion.V3 == client.getWorkingVersion() ? new com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityContainer() : new com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntityContainer(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { entityContainer.setName(jp.nextTextValue()); } else if ("Extends".equals(jp.getCurrentName())) { entityContainer.setExtends(jp.nextTextValue()); } else if ("LazyLoadingEnabled".equals(jp.getCurrentName())) { entityContainer.setLazyLoadingEnabled(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("IsDefaultEntityContainer".equals(jp.getCurrentName())) { entityContainer.setDefaultEntityContainer(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("EntitySet".equals(jp.getCurrentName())) { jp.nextToken();//ww w . j ava 2 s.co m if (entityContainer instanceof com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityContainer) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityContainer) entityContainer) .getEntitySets().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntitySet.class)); } else { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntityContainer) entityContainer) .getEntitySets().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntitySet.class)); } } else if ("AssociationSet".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityContainer) entityContainer) .getAssociationSets().add(jp.getCodec().readValue(jp, AssociationSet.class)); } else if ("Singleton".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntityContainer) entityContainer) .getSingletons().add(jp.getCodec().readValue(jp, Singleton.class)); } else if ("ActionImport".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntityContainer) entityContainer) .getActionImports().add(jp.getCodec().readValue(jp, ActionImport.class)); } else if ("FunctionImport".equals(jp.getCurrentName())) { jp.nextToken(); if (entityContainer instanceof com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityContainer) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityContainer) entityContainer) .getFunctionImports().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v3.FunctionImport.class)); } else { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntityContainer) entityContainer) .getFunctionImports().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v4.FunctionImport.class)); } } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntityContainer) entityContainer) .setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return entityContainer; }