List of usage examples for com.fasterxml.jackson.core JsonToken START_OBJECT
JsonToken START_OBJECT
To view the source code for com.fasterxml.jackson.core JsonToken START_OBJECT.
Click Source Link
From source file:io.apiman.manager.api.exportimport.json.JsonImportReader.java
@Override public void read() throws Exception { try {/* ww w.java2s .c o m*/ current = nextToken(); if (current != JsonToken.START_OBJECT) { throw new IllegalStateException("Expected start object at root"); } while (nextToken() != JsonToken.END_OBJECT) { GlobalElementsEnum fieldName = GlobalElementsEnum.valueOf(jp.getCurrentName()); current = nextToken(); switch (fieldName) { case Metadata: processEntity(MetadataBean.class, dispatcher::metadata); break; case Gateways: processEntities(GatewayBean.class, dispatcher::gateway); break; case Plugins: processEntities(PluginBean.class, dispatcher::plugin); break; case Roles: processEntities(RoleBean.class, dispatcher::role); break; case PolicyDefinitions: processEntities(PolicyDefinitionBean.class, dispatcher::policyDef); break; case Users: processEntities(UserBean.class, dispatcher::user); break; case Orgs: readOrgs(); break; default: throw new IllegalArgumentException("Unhandled field: " + fieldName); } } dispatcher.close(); } catch (Throwable t) { logger.error(t); dispatcher.cancel(); } finally { IOUtils.closeQuietly(in); } }
From source file:com.ning.metrics.serialization.smile.SmileEnvelopeEventDeserializer.java
/** * SmileEnvelopeEventDeserializer should be instantiated (using this constructor) if and only if * you plan on using it to incrementally extract events (rather than extracting them all at once) * * @param in InputStream containing events * @param plainJson whether the stream is in plain json (otherwise smile) * @throws IOException generic I/O exception *///www . j a v a2 s.co m public SmileEnvelopeEventDeserializer(final InputStream in, final boolean plainJson) throws IOException { // TODO bug when using pushbackInputStream like extractEvents does. very strange. if (!plainJson) { parser = smileFactory.createJsonParser(in); mapper = smileObjectMapper; } else { parser = jsonFactory.createJsonParser(in); mapper = jsonObjectMapper; } /* check that we either point to START_ARRAY or START_OBJECT; in former case * it is assumed we have array of event objects; in latter case just a * sequence of event objects. */ nextToken = parser.nextToken(); boolean inArray = (nextToken == JsonToken.START_ARRAY); if (inArray) { nextToken = parser.nextToken(); } // either way, first 'real' event must be a JSON Object if (nextToken != JsonToken.START_OBJECT) { throw new IOException("Invalid stream: expected JsonToken.START_OBJECT (in array context? " + inArray + "): instead encountered: " + nextToken); } }
From source file:org.lobid.lodmill.JsonDecoder.java
private JsonToken parseJson(final Reader reader) throws IOException, JsonParseException { String text = CharStreams.toString(reader); this.jsonParser = new JsonFactory().createParser(text); JsonToken currentToken = null;/*from w ww .j a va2s.c o m*/ try { currentToken = this.jsonParser.nextToken(); } catch (final JsonParseException e) { // is it JSONP ? if (text.indexOf(JsonDecoder.JSON_START_CHAR) == -1) { LOG.info("No JSON(P) - ignoring"); return null; } currentToken = handleJsonp(text); } while (JsonToken.START_OBJECT != currentToken) { this.jsonParser.nextToken(); } return currentToken; }
From source file:com.cedarsoft.serialization.jackson.SkipTypeInfoSerializer.java
/** * @param wrapper the parser/* ww w . j a v a 2 s. co m*/ * @param formatVersionOverride the format version override * @throws IOException if there is an io problem * @noinspection RefusedBequest */ @Nonnull @Override protected Version prepareDeserialization(@Nonnull JacksonParserWrapper wrapper, @Nullable Version formatVersionOverride) throws IOException, SerializationException { //We do *not* read the type information and version here! wrapper.nextToken(JsonToken.START_OBJECT); return getFormatVersion(); }
From source file:io.protostuff.JsonIOUtil.java
/** * Creates a json pipe from a {@link JsonParser}. *//*from ww w . j av a2 s .c o m*/ public static Pipe newPipe(final JsonParser parser, boolean numeric) throws IOException { final JsonInput jsonInput = new JsonInput(parser, numeric); return new Pipe() { @Override protected Input begin(Pipe.Schema<?> pipeSchema) throws IOException { if (parser.nextToken() != JsonToken.START_OBJECT) { throw new JsonInputException("Expected token: { but was " + parser.getCurrentToken() + " on message " + pipeSchema.wrappedSchema.messageFullName()); } return jsonInput; } @Override protected void end(Pipe.Schema<?> pipeSchema, Input input, boolean cleanupOnly) throws IOException { if (cleanupOnly) { parser.close(); return; } assert input == jsonInput; final JsonToken token = parser.getCurrentToken(); parser.close(); if (token != JsonToken.END_OBJECT) { throw new JsonInputException("Expected token: } but was " + token + " on message " + pipeSchema.wrappedSchema.messageFullName()); } } }; }
From source file:com.nesscomputing.httpclient.response.StreamedJsonContentConverter.java
@Override public Void convert(final HttpClientResponse response, final InputStream inputStream) throws IOException { switch (response.getStatusCode()) { case 201:/*from w w w .j a va2 s. co m*/ case 204: LOG.debug("Return code is %d, finishing.", response.getStatusCode()); return null; case 200: try (final JsonParser jp = mapper.getFactory().createJsonParser(inputStream)) { expect(jp, jp.nextToken(), JsonToken.START_OBJECT); expect(jp, jp.nextToken(), JsonToken.FIELD_NAME); if (!"results".equals(jp.getCurrentName())) { throw new JsonParseException("expecting results field", jp.getCurrentLocation()); } expect(jp, jp.nextToken(), JsonToken.START_ARRAY); // As noted in a well-hidden comment in the MappingIterator constructor, // readValuesAs requires the parser to be positioned after the START_ARRAY // token with an empty current token jp.clearCurrentToken(); Iterator<T> iter = jp.readValuesAs(typeRef); while (iter.hasNext()) { try { callback.call(iter.next()); } catch (CallbackRefusedException e) { LOG.debug(e, "callback refused execution, finishing."); return null; } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new IOException("Callback interrupted", e); } catch (Exception e) { Throwables.propagateIfPossible(e, IOException.class); throw new IOException("Callback failure", e); } } if (jp.nextValue() != JsonToken.VALUE_TRUE || !jp.getCurrentName().equals("success")) { throw new IOException( "Streamed receive did not terminate normally; inspect server logs for cause."); } return null; } default: throw throwHttpResponseException(response); } }
From source file:com.adobe.communities.ugc.migration.importer.ForumImportServlet.java
protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { final ResourceResolver resolver = request.getResourceResolver(); UGCImportHelper.checkUserPrivileges(resolver, rrf); final UGCImportHelper importHelper = new UGCImportHelper(); importHelper.setForumOperations(forumOperations); importHelper.setTallyService(tallyOperationsService); // get the forum we'll be adding new topics to final String path = request.getRequestParameter("path").getString(); final Resource resource = request.getResourceResolver().getResource(path); if (resource == null) { throw new ServletException("Could not find a valid resource for import"); }/*from ww w . j a v a 2 s .com*/ // finally get the uploaded file final RequestParameter[] fileRequestParameters = request.getRequestParameters("file"); if (fileRequestParameters != null && fileRequestParameters.length > 0 && !fileRequestParameters[0].isFormField()) { InputStream inputStream = fileRequestParameters[0].getInputStream(); JsonParser jsonParser = new JsonFactory().createParser(inputStream); jsonParser.nextToken(); // get the first token if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) { jsonParser.nextToken(); if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT_TYPE)) { jsonParser.nextToken(); final String contentType = jsonParser.getValueAsString(); if (contentType.equals(getContentType())) { jsonParser.nextToken(); // content if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT)) { jsonParser.nextToken(); // startObject if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) { JsonToken token = jsonParser.nextToken(); // social:key try { while (!token.equals(JsonToken.END_OBJECT)) { importHelper.extractTopic(jsonParser, resource, resource.getResourceResolver(), getOperationsService()); token = jsonParser.nextToken(); } } catch (final IOException e) { throw new ServletException("Encountered an IOException", e); } } else { throw new ServletException("Start object token not found for content"); } } else { throw new ServletException("Content not found"); } } else { throw new ServletException("Expected forum data"); } } else { throw new ServletException("Content Type not specified"); } } else { throw new ServletException("Invalid Json format"); } } }
From source file:com.cedarsoft.serialization.test.performance.JacksonTest.java
@Test public void testParse() throws Exception { JsonParser parser = jsonFactory.createJsonParser(JSON); 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());// ww w .j av a 2 s . c o m }
From source file:com.amazonaws.services.cloudtrail.processinglibrary.serializer.AbstractEventSerializer.java
/** * Read the header of an AWS CloudTrail log. * * @throws JsonParseException if the log could not be parsed. * @throws IOException if the log could not be opened or accessed. *///from w w w .ja va 2 s .com protected void readArrayHeader() throws JsonParseException, IOException { if (this.jsonParser.nextToken() != JsonToken.START_OBJECT) { throw new JsonParseException("Not a Json object", this.jsonParser.getCurrentLocation()); } this.jsonParser.nextToken(); if (!jsonParser.getText().equals(RECORDS)) { throw new JsonParseException("Not a CloudTrail log", this.jsonParser.getCurrentLocation()); } if (this.jsonParser.nextToken() != JsonToken.START_ARRAY) { throw new JsonParseException("Not a CloudTrail log", this.jsonParser.getCurrentLocation()); } }
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 v a2s. 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(); }