List of usage examples for com.fasterxml.jackson.core JsonToken END_OBJECT
JsonToken END_OBJECT
To view the source code for com.fasterxml.jackson.core JsonToken END_OBJECT.
Click Source Link
From source file:org.apache.lucene.server.handlers.BulkUpdateDocumentsHandler.java
@Override public String handleStreamed(Reader reader, Map<String, List<String>> params) throws Exception { JsonFactory jfactory = new JsonFactory(); JsonParser parser = jfactory.createJsonParser(reader); if (parser.nextToken() != JsonToken.START_OBJECT) { throw new IllegalArgumentException("expected JSON object"); }/*from w w w . j a va2s . c o m*/ if (parser.nextToken() != JsonToken.FIELD_NAME) { throw new IllegalArgumentException("expected indexName first"); } if (!parser.getText().equals("indexName")) { throw new IllegalArgumentException("expected indexName first"); } if (parser.nextToken() != JsonToken.VALUE_STRING) { throw new IllegalArgumentException("indexName should be string"); } IndexState indexState = globalState.get(parser.getText()); indexState.verifyStarted(null); if (parser.nextToken() != JsonToken.FIELD_NAME) { throw new IllegalArgumentException("expected documents next"); } if (!parser.getText().equals("documents")) { throw new IllegalArgumentException("expected documents after indexName"); } if (parser.nextToken() != JsonToken.START_ARRAY) { throw new IllegalArgumentException("documents should be a list"); } ShardState shardState = indexState.getShard(0); int count = 0; IndexingContext ctx = new IndexingContext(); AddDocumentHandler addDocHandler = (AddDocumentHandler) globalState.getHandler("addDocument"); // Parse as many doc blocks as there are: while (true) { List<Document> children = null; Document parent = null; Term updateTerm = null; JsonToken token = parser.nextToken(); if (token == JsonToken.END_ARRAY) { break; } if (token != JsonToken.START_OBJECT) { throw new IllegalArgumentException("expected object"); } // Parse term + parent + children for this one doc block: while (true) { token = parser.nextToken(); if (token == JsonToken.END_OBJECT) { // Done with parent + child in this block break; } if (token != JsonToken.FIELD_NAME) { throw new IllegalArgumentException("missing field name: " + token); } String f = parser.getText(); if (f.equals("term")) { if (parser.nextToken() != JsonToken.START_OBJECT) { throw new IllegalArgumentException("missing object"); } // TODO: allow field to be specified only once, then // only text per document String field = null, term = null; while (parser.nextToken() != JsonToken.END_OBJECT) { String f2 = parser.getText(); if (f2.equals("field")) { if (parser.nextToken() != JsonToken.VALUE_STRING) { throw new IllegalArgumentException("missing string value"); } field = parser.getText(); // Ensure field is valid: indexState.getField(field); } else if (f2.equals("term")) { if (parser.nextToken() != JsonToken.VALUE_STRING) { throw new IllegalArgumentException("missing string value"); } term = parser.getText(); } else { throw new IllegalArgumentException("unexpected field " + f); } } updateTerm = new Term(field, term); } else if (f.equals("children")) { token = parser.nextToken(); if (token != JsonToken.START_ARRAY) { throw new IllegalArgumentException("expected array for children"); } children = new ArrayList<Document>(); // Parse each child: while (true) { Document doc = addDocHandler.parseDocument(indexState, parser); if (doc == null) { break; } children.add(doc); } } else if (f.equals("parent")) { parent = addDocHandler.parseDocument(indexState, parser); } else { throw new IllegalArgumentException("unrecognized field name \"" + f + "\""); } } if (parent == null) { throw new IllegalArgumentException("missing parent"); } if (children == null) { throw new IllegalArgumentException("missing children"); } // Parent is last: children.add(parent); globalState.submitIndexingTask(shardState.getAddDocumentsJob(count, updateTerm, children, ctx)); count++; } // nocommit this is ... lameish: while (true) { if (ctx.addCount.get() == count) { break; } Thread.sleep(1); } Throwable t = ctx.getError(); if (t != null) { IOUtils.reThrow(t); } JSONObject o = new JSONObject(); o.put("indexGen", shardState.writer.getMaxCompletedSequenceNumber()); o.put("indexedDocumentBlockCount", count); return o.toString(); }
From source file:com.cedarsoft.serialization.test.performance.Bson4JacksonTest.java
@Test public void testParse() throws Exception { JsonParser parser = jsonFactory.createJsonParser(Hex.decodeHex(BSON.toCharArray())); assertEquals(JsonToken.START_OBJECT, parser.nextToken()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("id", parser.getCurrentName()); assertEquals(JsonToken.VALUE_STRING, parser.nextToken()); assertEquals("Canon Raw", parser.getText()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("dependent", parser.getCurrentName()); assertEquals(JsonToken.VALUE_FALSE, parser.nextToken()); assertFalse(parser.getBooleanValue()); 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()); assertEquals("cr2", parser.getText()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("default", parser.getCurrentName()); assertEquals(JsonToken.VALUE_TRUE, parser.nextToken()); assertTrue(parser.getBooleanValue()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("delimiter", parser.getCurrentName()); assertEquals(JsonToken.VALUE_STRING, parser.nextToken()); assertEquals(".", parser.getText()); assertEquals(JsonToken.END_OBJECT, parser.nextToken()); assertEquals(JsonToken.END_OBJECT, parser.nextToken()); assertNull(parser.nextToken());//w ww .j av a2 s . c o m }
From source file:com.cedarsoft.serialization.serializers.jackson.LicenseSerializer.java
@Nonnull @Override/*from w w w. j a v a 2 s .c om*/ public License deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion) throws VersionException, IOException, JsonProcessingException { //If there is a subtype it *must* be cc JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom); parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); if (deserializeFrom.getCurrentName().equals(PROPERTY_SUB_TYPE)) { parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.VALUE_STRING); String subType = deserializeFrom.getText(); if (!subType.equals(SUB_TYPE_CC)) { throw new IllegalStateException("Invalid sub type: " + subType); } parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName = parserWrapper.getCurrentName(); if (!PROPERTY_ID.equals(currentName)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_ID + "> but was <" + currentName + ">", parserWrapper.getCurrentLocation()); } } //id assert deserializeFrom.getCurrentName().equals(PROPERTY_ID); parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.VALUE_STRING); String id = deserializeFrom.getText(); //name parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName1 = parserWrapper.getCurrentName(); if (!PROPERTY_NAME.equals(currentName1)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_NAME + "> but was <" + currentName1 + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); String name = deserializeFrom.getText(); //url parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName = parserWrapper.getCurrentName(); if (!PROPERTY_URL.equals(currentName)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_URL + "> but was <" + currentName + ">", parserWrapper.getCurrentLocation()); } JsonToken token = deserializeFrom.nextToken(); @Nullable URL url; if (token == JsonToken.VALUE_NULL) { url = null; } else { url = new URL(deserializeFrom.getText()); } //Finally closing element parserWrapper.nextToken(JsonToken.END_OBJECT); //Constructing the deserialized object try { return License.get(id); } catch (IllegalArgumentException ignore) { return new License(id, name, url); } }
From source file:com.cinnober.msgcodec.json.TypeScannerJsonParser.java
private void skipValuesUntil(Iterator<Token> it, JsonToken end) throws DecodeException { for (;;) {//from www. java2 s .c o m Token token = it.next(); if (token.getType() == end) { break; } else { if (end == JsonToken.END_OBJECT) { skipField(it); } skipValue(it); } } }
From source file:org.graylog2.gelfclient.encoder.GelfMessageJsonEncoderTest.java
@Test public void testOptionalFullMessage() throws Exception { final EmbeddedChannel channel = new EmbeddedChannel(new GelfMessageJsonEncoder()); final GelfMessage message = new GelfMessageBuilder("test").build(); assertTrue(channel.writeOutbound(message)); assertTrue(channel.finish());//from w w w .j a v a 2 s . co m final ByteBuf byteBuf = (ByteBuf) channel.readOutbound(); final byte[] bytes = new byte[byteBuf.readableBytes()]; byteBuf.getBytes(0, bytes).release(); final JsonFactory json = new JsonFactory(); final JsonParser parser = json.createParser(bytes); String version = null; Number timestamp = null; String host = null; String short_message = null; String full_message = null; Number level = null; while (parser.nextToken() != JsonToken.END_OBJECT) { String key = parser.getCurrentName(); if (key == null) { continue; } parser.nextToken(); switch (key) { case "version": version = parser.getText(); break; case "timestamp": timestamp = parser.getNumberValue(); break; case "host": host = parser.getText(); break; case "short_message": short_message = parser.getText(); break; case "full_message": full_message = parser.getText(); break; case "level": level = parser.getNumberValue(); break; default: throw new Exception("Found unexpected field in JSON payload: " + key); } } assertEquals(message.getVersion().toString(), version); assertEquals(message.getTimestamp(), timestamp); assertEquals(message.getHost(), host); assertEquals(message.getMessage(), short_message); assertNull(full_message); assertEquals(message.getLevel().getNumericLevel(), level); }
From source file:com.github.heuermh.ensemblrestclient.JacksonVariationConverter.java
static VariationConsequences parseVariationConsequences(final JsonFactory jsonFactory, final InputStream inputStream) throws IOException { JsonParser parser = null;/*w w w . j a v a 2 s . c o m*/ try { parser = jsonFactory.createParser(inputStream); parser.nextToken(); String identifier = null; String referenceAllele = null; List<String> alternateAlleles = new ArrayList<String>(); String locationName = null; String coordinateSystem = "chromosome"; int start = -1; int end = -1; int strand = -1; List<TranscriptConsequences> transcriptConsequences = new ArrayList<TranscriptConsequences>(); String alternateAllele = null; int transcriptStrand = -1; boolean canonical = false; String geneId = null; String transcriptId = null; String translationId = null; String transcriptAlleleString = null; String codons = null; String hgvsc = null; String aminoAcids = null; String hgvsp = null; List<String> consequenceTerms = new ArrayList<String>(); while (parser.nextToken() != JsonToken.END_ARRAY) { while (parser.nextToken() != JsonToken.END_OBJECT) { String field = parser.getCurrentName(); parser.nextToken(); if ("id".equals(field)) { identifier = parser.getText(); } else if ("seq_region_name".equals(field)) { locationName = parser.getText(); } else if ("start".equals(field)) { start = parser.getIntValue(); } else if ("end".equals(field)) { end = parser.getIntValue(); } else if ("strand".equals(field)) { strand = parser.getIntValue(); } else if ("allele_string".equals(field)) { String[] tokens = parser.getText().split("/"); referenceAllele = tokens[0]; for (int i = 1; i < tokens.length; i++) { alternateAlleles.add(tokens[i]); } } else if ("transcript_consequences".equals(field)) { while (parser.nextToken() != JsonToken.END_ARRAY) { while (parser.nextToken() != JsonToken.END_OBJECT) { String transcriptField = parser.getCurrentName(); parser.nextToken(); if ("variant_allele".equals(transcriptField)) { alternateAllele = parser.getText(); } else if ("strand".equals(transcriptField)) { transcriptStrand = parser.getIntValue(); } else if ("canonical".equals(transcriptField)) { canonical = (Integer.parseInt(parser.getText()) > 0); } else if ("gene_id".equals(transcriptField)) { geneId = parser.getText(); } else if ("transcript_id".equals(transcriptField)) { transcriptId = parser.getText(); } else if ("protein_id".equals(transcriptField)) { translationId = parser.getText(); } else if ("codons".equals(transcriptField)) { codons = parser.getText(); } else if ("hgvsc".equals(transcriptField)) { hgvsc = parser.getText(); } else if ("amino_acids".equals(transcriptField)) { aminoAcids = parser.getText(); } else if ("hgvsp".equals(transcriptField)) { hgvsp = parser.getText(); } else if ("consequence_terms".equals(transcriptField)) { while (parser.nextToken() != JsonToken.END_ARRAY) { consequenceTerms.add(parser.getText()); } } } transcriptConsequences.add(new TranscriptConsequences(alternateAllele, transcriptStrand, canonical, geneId, transcriptId, translationId, codons, hgvsc, aminoAcids, hgvsp, consequenceTerms)); alternateAllele = null; transcriptStrand = -1; canonical = false; geneId = null; transcriptId = null; translationId = null; transcriptAlleleString = null; codons = null; hgvsc = null; aminoAcids = null; hgvsp = null; consequenceTerms.clear(); } } else if ("colocated_variants".equals(field)) { while (parser.nextToken() != JsonToken.END_ARRAY) { while (parser.nextToken() != JsonToken.END_OBJECT) { // ignore } } } } } Location location = new Location(locationName, coordinateSystem, start, end, strand); return new VariationConsequences(identifier, referenceAllele, alternateAlleles, location, transcriptConsequences); } finally { try { inputStream.close(); } catch (Exception e) { // ignored } try { parser.close(); } catch (Exception e) { // ignored } } }
From source file:ai.susi.geo.GeoJsonReader.java
private static Map<String, String> parseMap(JsonParser parser) throws JsonParseException, IOException { Map<String, String> map = new HashMap<>(); JsonToken token = parser.nextToken(); if (!JsonToken.START_OBJECT.equals(token)) return map; while (!parser.isClosed() && (token = parser.nextToken()) != null && token != JsonToken.END_OBJECT) { String name = parser.getCurrentName(); token = parser.nextToken();/* w ww . j av a 2s . c om*/ String value = parser.getText(); map.put(name.toLowerCase(), value); } return map; }
From source file:org.jberet.support.io.JsonItemReader.java
@Override public Object readItem() throws Exception { if (rowNumber >= end) { return null; }/* w w w . j a v a 2 s. c o m*/ int nestedObjectLevel = 0; do { token = jsonParser.nextToken(); if (token == null) { return null; } else if (token == JsonToken.START_OBJECT) { nestedObjectLevel++; if (nestedObjectLevel == 1) { rowNumber++; } else if (nestedObjectLevel < 1) { throw SupportMessages.MESSAGES.unexpectedJsonContent(jsonParser.getCurrentLocation()); } if (rowNumber >= start) { break; } } else if (token == JsonToken.END_OBJECT) { nestedObjectLevel--; } } while (true); final Object readValue = objectMapper.readValue(jsonParser, beanType); if (!skipBeanValidation) { ItemReaderWriterBase.validate(readValue); } return readValue; }
From source file:de.konqi.fitapi.auth.PublicKeysManager.java
/** * Forces a refresh of the public certificates downloaded from {@link #getPublicCertsEncodedUrl}. * * <p>/*from w ww. java2s . co m*/ * This method is automatically called from {@link #getPublicKeys()} if the public keys have not * yet been initialized or if the expiration time is very close, so normally this doesn't need to * be called. Only call this method to explicitly force the public keys to be updated. * </p> */ public PublicKeysManager refresh() throws GeneralSecurityException, IOException { lock.lock(); try { publicKeys = new ArrayList<PublicKey>(); // HTTP request to public endpoint CertificateFactory factory = SecurityUtils.getX509CertificateFactory(); HttpResponse certsResponse = transport.createRequestFactory() .buildGetRequest(new GenericUrl(publicCertsEncodedUrl)).execute(); expirationTimeMilliseconds = clock.currentTimeMillis() + getCacheTimeInSec(certsResponse.getHeaders()) * 1000; // parse each public key in the JSON response JsonParser parser = jsonFactory.createJsonParser(certsResponse.getContent()); JsonToken currentToken = parser.getCurrentToken(); // token is null at start, so get next token if (currentToken == null) { currentToken = parser.nextToken(); } Preconditions.checkArgument(currentToken == JsonToken.START_OBJECT); try { while (parser.nextToken() != JsonToken.END_OBJECT) { parser.nextToken(); String certValue = parser.getText(); X509Certificate x509Cert = (X509Certificate) factory .generateCertificate(new ByteArrayInputStream(StringUtils.getBytesUtf8(certValue))); publicKeys.add(x509Cert.getPublicKey()); } publicKeys = Collections.unmodifiableList(publicKeys); } finally { parser.close(); } return this; } finally { lock.unlock(); } }
From source file:com.boundary.zoocreeper.Restore.java
private static BackupZNode readZNode(JsonParser jp, String path) throws IOException { expectNextToken(jp, JsonToken.START_OBJECT); long ephemeralOwner = 0; byte[] data = null; final List<ACL> acls = Lists.newArrayList(); final Set<String> seenFields = Sets.newHashSet(); while (jp.nextToken() != JsonToken.END_OBJECT) { jp.nextValue();//from w w w.jav a2 s. co m final String fieldName = jp.getCurrentName(); seenFields.add(fieldName); if (Backup.FIELD_EPHEMERAL_OWNER.equals(fieldName)) { ephemeralOwner = jp.getLongValue(); } else if (Backup.FIELD_DATA.equals(fieldName)) { if (jp.getCurrentToken() == JsonToken.VALUE_NULL) { data = null; } else { data = jp.getBinaryValue(); } } else if (Backup.FIELD_ACLS.equals(fieldName)) { readACLs(jp, acls); } else { LOGGER.debug("Ignored field: {}", fieldName); } } if (!seenFields.containsAll(REQUIRED_ZNODE_FIELDS)) { throw new IOException("Missing required fields: " + REQUIRED_ZNODE_FIELDS); } return new BackupZNode(path, ephemeralOwner, data, acls); }