List of usage examples for com.fasterxml.jackson.core JsonParser close
@Override public abstract void close() throws IOException;
From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java
@Override public Genome parseGenomes(final InputStream inputStream) { checkNotNull(inputStream);//from ww w .j a v a 2 s .c o m 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.o3project.ocnrm.odenos.linklayerizer.LinkLayerizerBoundarySet.java
public Map<String, LinklayerizerBoundary> changeJSONBoundariesToBoundaries(String jsonBoundary, String seqNo) { logger.info(seqNo + "\t" + "changeJSONBoundariestoBoundaries Start"); linklayerizerBoundaryMap = new HashMap<String, LinklayerizerBoundary>(); try {/* w ww .j a v a 2s. c om*/ JsonFactory factory = new JsonFactory(); JsonParser jp = factory.createParser(jsonBoundary); jp.nextToken(); while (jp.nextToken() != JsonToken.END_OBJECT) { String mapKey = jp.getCurrentName(); LinklayerizerBoundary llb = new LinklayerizerBoundary(); jp.nextToken(); while (jp.nextToken() != JsonToken.END_OBJECT) { String fieldname = jp.getCurrentName(); jp.nextToken(); if ("boundary_id".equals(fieldname)) { llb.setBoundary_id(jp.getText()); } else if ("lower_nw".equals(fieldname)) { llb.setLower_nw(jp.getText()); } else if ("lower_nw_node".equals(fieldname)) { llb.setLower_nw_node(jp.getText()); } else if ("lower_nw_port".equals(fieldname)) { llb.setLower_nw_port(jp.getText()); } else if ("upper_nw".equals(fieldname)) { llb.setUpper_nw(jp.getText()); } else if ("upper_nw_node".equals(fieldname)) { llb.setUpper_nw_node(jp.getText()); } else if ("upper_nw_port".equals(fieldname)) { llb.setUpper_nw_port(jp.getText()); } else if ("type".equals(fieldname)) { continue; } else { throw new IllegalStateException(seqNo + "\t" + "Unrecognized field '" + fieldname + "'!"); } } linklayerizerBoundaryMap.put(mapKey, llb); } jp.close(); } catch (JsonParseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } logger.info(seqNo + "\t" + "changeJSONBoundariestoBoundaries End"); return linklayerizerBoundaryMap; }
From source file:com.microsoft.azure.storage.table.CEKReturn.java
/** * Reserved for internal use. Parses the operation response as a collection of entities. Reads entity data from the * specified input stream using the specified class type and optionally projects each entity result with the * specified resolver into an {@link ODataPayload} containing a collection of {@link TableResult} objects. * /*from w ww.j a va 2 s . c om*/ * @param inStream * The <code>InputStream</code> to read the data to parse from. * @param clazzType * The class type <code>T</code> implementing {@link TableEntity} for the entities returned. Set to * <code>null</code> to ignore the returned entities and copy only response properties into the * {@link TableResult} objects. * @param resolver * An {@link EntityResolver} instance to project the entities into instances of type <code>R</code>. Set * to <code>null</code> to return the entities as instances of the class type <code>T</code>. * @param options * A {@link TableRequestOptions} object that specifies execution options such as retry policy and timeout * settings for the operation. * @param opContext * An {@link OperationContext} object used to track the execution of the operation. * @return * An {@link ODataPayload} containing a collection of {@link TableResult} objects with the parsed operation * response. * @throws InstantiationException * if an error occurs while constructing the result. * @throws IllegalAccessException * if an error occurs in reflection while parsing the result. * @throws StorageException * if a storage service error occurs. * @throws IOException * if an error occurs while accessing the stream. * @throws JsonParseException * if an error occurs while parsing the stream. */ @SuppressWarnings("unchecked") static <T extends TableEntity, R> ODataPayload<?> parseQueryResponse(final InputStream inStream, final TableRequestOptions options, final Class<T> clazzType, final EntityResolver<R> resolver, final OperationContext opContext) throws JsonParseException, IOException, InstantiationException, IllegalAccessException, StorageException { ODataPayload<T> corePayload = null; ODataPayload<R> resolvedPayload = null; ODataPayload<?> commonPayload = null; JsonParser parser = Utility.getJsonParser(inStream); try { if (resolver != null) { resolvedPayload = new ODataPayload<R>(); commonPayload = resolvedPayload; } else { corePayload = new ODataPayload<T>(); commonPayload = corePayload; } if (!parser.hasCurrentToken()) { parser.nextToken(); } JsonUtilities.assertIsStartObjectJsonToken(parser); // move into data parser.nextToken(); // if there is a clazz type and if JsonNoMetadata, create a classProperties dictionary to use for type inference once // instead of querying the cache many times HashMap<String, PropertyPair> classProperties = null; if (options.getTablePayloadFormat() == TablePayloadFormat.JsonNoMetadata && clazzType != null) { classProperties = PropertyPair.generatePropertyPairs(clazzType); } while (parser.getCurrentToken() != null) { if (parser.getCurrentToken() == JsonToken.FIELD_NAME && parser.getCurrentName().equals(ODataConstants.VALUE)) { // move to start of array parser.nextToken(); JsonUtilities.assertIsStartArrayJsonToken(parser); // go to properties parser.nextToken(); while (parser.getCurrentToken() == JsonToken.START_OBJECT) { final TableResult res = parseJsonEntity(parser, clazzType, classProperties, resolver, options, opContext); if (corePayload != null) { corePayload.tableResults.add(res); } if (resolver != null) { resolvedPayload.results.add((R) res.getResult()); } else { corePayload.results.add((T) res.getResult()); } parser.nextToken(); } JsonUtilities.assertIsEndArrayJsonToken(parser); } parser.nextToken(); } } finally { parser.close(); } return commonPayload; }
From source file:net.floodlightcontroller.loadbalancer.MembersResource.java
protected LBMember jsonToMember(String json) throws IOException { MappingJsonFactory f = new MappingJsonFactory(); JsonParser jp; LBMember member = new LBMember(); try {/*from w w w . j ava2 s. co m*/ jp = f.createJsonParser(json); } catch (JsonParseException e) { throw new IOException(e); } jp.nextToken(); if (jp.getCurrentToken() != JsonToken.START_OBJECT) { throw new IOException("Expected START_OBJECT"); } while (jp.nextToken() != JsonToken.END_OBJECT) { if (jp.getCurrentToken() != JsonToken.FIELD_NAME) { throw new IOException("Expected FIELD_NAME"); } String n = jp.getCurrentName(); jp.nextToken(); if (jp.getText().equals("")) continue; if (n.equals("id")) { member.id = jp.getText(); continue; } else if (n.equals("address")) { member.address = IPv4.toIPv4Address(jp.getText()); continue; } else if (n.equals("port")) { member.port = Short.parseShort(jp.getText()); continue; } else if (n.equals("connection_limit")) { member.connectionLimit = Integer.parseInt(jp.getText()); continue; } else if (n.equals("admin_state")) { member.adminState = Short.parseShort(jp.getText()); continue; } else if (n.equals("status")) { member.status = Short.parseShort(jp.getText()); continue; } else if (n.equals("pool_id")) { member.poolId = jp.getText(); continue; } log.warn("Unrecognized field {} in " + "parsing Members", jp.getText()); } jp.close(); return member; }
From source file:com.amazonaws.http.JsonResponseHandler.java
/** * @see com.amazonaws.http.HttpResponseHandler#handle(com.amazonaws.http.HttpResponse) *///from ww w. j av a 2 s .com public AmazonWebServiceResponse<T> handle(HttpResponse response) throws Exception { log.trace("Parsing service response JSON"); String CRC32Checksum = response.getHeaders().get("x-amz-crc32"); CRC32ChecksumCalculatingInputStream crc32ChecksumInputStream = null; JsonParser jsonParser = null; if (!needsConnectionLeftOpen) { if (CRC32Checksum != null) { crc32ChecksumInputStream = new CRC32ChecksumCalculatingInputStream(response.getContent()); jsonParser = jsonFactory.createParser(crc32ChecksumInputStream); } else { jsonParser = jsonFactory.createParser(response.getContent()); } } try { AmazonWebServiceResponse<T> awsResponse = new AmazonWebServiceResponse<T>(); JsonUnmarshallerContext unmarshallerContext = new JsonUnmarshallerContext(jsonParser, response); registerAdditionalMetadataExpressions(unmarshallerContext); T result = responseUnmarshaller.unmarshall(unmarshallerContext); if (CRC32Checksum != null) { long serverSideCRC = Long.parseLong(CRC32Checksum); long clientSideCRC = crc32ChecksumInputStream.getCRC32Checksum(); if (clientSideCRC != serverSideCRC) { throw new CRC32MismatchException( "Client calculated crc32 checksum didn't match that calculated by server side"); } } awsResponse.setResult(result); Map<String, String> metadata = unmarshallerContext.getMetadata(); metadata.put(ResponseMetadata.AWS_REQUEST_ID, response.getHeaders().get("x-amzn-RequestId")); awsResponse.setResponseMetadata(new ResponseMetadata(metadata)); log.trace("Done parsing service response"); return awsResponse; } finally { if (!needsConnectionLeftOpen) { try { jsonParser.close(); } catch (IOException e) { log.warn("Error closing json parser", e); } } } }
From source file:com.amazonaws.client.handler.response.JsonResponseHandler.java
/** * @see com.amazonaws.client.handler.response.HttpResponseHandler#handle(com.amazonaws.network.response.HttpResponse) *///from w ww. j av a 2 s.c o m public AmazonWebServiceResponse<T> handle(HttpResponse response) throws Exception { log.trace("Parsing service response JSON"); String CRC32Checksum = response.getHeaders().get("x-amz-crc32"); CRC32ChecksumCalculatingInputStream crc32ChecksumInputStream = null; JsonParser jsonParser = null; if (!needsConnectionLeftOpen) { if (CRC32Checksum != null) { crc32ChecksumInputStream = new CRC32ChecksumCalculatingInputStream(response.getContent()); jsonParser = jsonFactory.createParser(crc32ChecksumInputStream); } else { jsonParser = jsonFactory.createParser(response.getContent()); } } try { AmazonWebServiceResponse<T> awsResponse = new AmazonWebServiceResponse<T>(); JsonUnmarshallerContext unmarshallerContext = new JsonUnmarshallerContextImpl(jsonParser, response); registerAdditionalMetadataExpressions(unmarshallerContext); T result = responseUnmarshaller.unmarshall(unmarshallerContext); if (CRC32Checksum != null) { long serverSideCRC = Long.parseLong(CRC32Checksum); long clientSideCRC = crc32ChecksumInputStream.getCRC32Checksum(); if (clientSideCRC != serverSideCRC) { throw new CRC32MismatchException( "Client calculated crc32 checksum didn't match that calculated by server side"); } } awsResponse.setResult(result); Map<String, String> metadata = unmarshallerContext.getMetadata(); metadata.put(ResponseMetadata.AWS_REQUEST_ID, response.getHeaders().get("x-amzn-RequestId")); awsResponse.setResponseMetadata(new ResponseMetadata(metadata)); log.trace("Done parsing service response"); return awsResponse; } finally { if (!needsConnectionLeftOpen) { try { jsonParser.close(); } catch (IOException e) { log.warn("Error closing json parser", e); } } } }
From source file:com.tlongdev.bktf.interactor.TlongdevPriceListInteractor.java
private int parseJson(InputStream inputStream) throws IOException { //Create a parser from the input stream for fast parsing and low impact on memory JsonFactory factory = new JsonFactory(); JsonParser parser = factory.createParser(inputStream); Vector<ContentValues> cVVector = new Vector<>(); int retVal = 0; int count = 0; //Not a JSON if it doesn't start with START OBJECT if (parser.nextToken() != JsonToken.START_OBJECT) { return -1; }/*from www .jav a2 s . c om*/ while (parser.nextToken() != JsonToken.END_OBJECT) { String name = parser.getCurrentName(); parser.nextToken(); switch (name) { case "success": if (parser.getIntValue() == 0) { retVal = 1; } break; case "message": errorMessage = parser.getText(); break; case "count": count = parser.getIntValue(); break; case "prices": while (parser.nextToken() != JsonToken.END_ARRAY) { ContentValues values = buildContentValues(parser); cVVector.add(values); } if (cVVector.size() > 0) { ContentValues[] cvArray = new ContentValues[cVVector.size()]; cVVector.toArray(cvArray); //Insert all the data into the database rowsInserted = mContext.getContentResolver().bulkInsert(PriceEntry.CONTENT_URI, cvArray); Log.v(LOG_TAG, "inserted " + rowsInserted + " rows into prices table"); } break; } } parser.close(); return retVal; }
From source file:com.pursuer.reader.easyrss.data.parser.SubscriptionJSONParser.java
public void parse() throws JsonParseException, IOException, IllegalStateException { final JsonFactory factory = new JsonFactory(); final JsonParser parser = factory.createJsonParser(input); Subscription sub = new Subscription(); int level = 0; boolean found = false; while (parser.nextToken() != null) { final String name = parser.getCurrentName(); switch (parser.getCurrentToken()) { case START_OBJECT: case START_ARRAY: level++;/*w w w . j av a 2s.com*/ break; case END_OBJECT: case END_ARRAY: level--; break; case VALUE_STRING: if (level == 3) { if ("id".equals(name)) { sub.setUid(parser.getText()); } else if ("htmlUrl".equals(name)) { sub.setUrl(parser.getText()); } else if ("title".equals(name)) { sub.setTitle(Html.fromHtml(parser.getText()).toString()); } else if ("sortid".equals(name)) { sub.setSortId(parser.getText()); } else if ("firstitemmsec".equals(name)) { sub.setFirstItemMsec(Long.valueOf(parser.getText())); } } else if (level == 5 && "id".equals(name)) { sub.addTag(parser.getText()); } break; case FIELD_NAME: if (level == 1 && "subscriptions".equals(name)) { found = true; } break; default: } if (level == 2) { if (sub.getUid() != null && listener != null) { listener.onSubscriptionRetrieved(sub); } sub = new Subscription(); } } parser.close(); if (!found) { throw new IllegalStateException("Invalid JSON input"); } }
From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java
@Override public Genotype parseGenotypes(final InputStream inputStream) { checkNotNull(inputStream);//from w ww . j ava2 s.c o m JsonParser parser = null; try { parser = jsonFactory.createParser(inputStream); parser.nextToken(); String id = null; String location = null; String interpretation = null; Map<String, String> values = new HashMap<String, String>(); while (parser.nextToken() != JsonToken.END_OBJECT) { String field = parser.getCurrentName(); parser.nextToken(); if ("id".equals(field)) { id = parser.getText(); } else { location = field; interpretation = parser.getText(); values.put(location, interpretation); } } return new Genotype(id, values); } catch (IOException e) { logger.warn("could not parse genotypes"); } finally { try { inputStream.close(); } catch (Exception e) { // ignored } try { parser.close(); } catch (Exception e) { // ignored } } return null; }