List of usage examples for com.fasterxml.jackson.core JsonParser nextToken
public abstract JsonToken nextToken() throws IOException, JsonParseException;
From source file:net.opentsdb.utils.TestJSON.java
/** Helper to parse an input stream into a map */ private HashMap<String, String> parseToMap(final InputStream is) throws Exception { JsonParser jp = JSON.parseToStream(is); HashMap<String, String> map = new HashMap<String, String>(); String field = ""; String value;/*from www. ja v a 2s. co m*/ while (jp.nextToken() != null) { if (jp.getCurrentToken() == JsonToken.FIELD_NAME && jp.getCurrentName() != null) { field = jp.getCurrentName(); } else if (jp.getCurrentToken() == JsonToken.VALUE_STRING) { value = jp.getText(); map.put(field, value); } } return map; }
From source file:com.reprezen.swagedit.model.NodeDeserializer.java
protected ArrayNode deserializeArrayNode(JsonParser p, DeserializationContext context, JsonLocation startLocation) throws IOException { final Model model = (Model) context.getAttribute(ATTRIBUTE_MODEL); final AbstractNode parent = (AbstractNode) context.getAttribute(ATTRIBUTE_PARENT); final JsonPointer ptr = (JsonPointer) context.getAttribute(ATTRIBUTE_POINTER); ArrayNode node = model.arrayNode(parent, ptr); int i = 0;//ww w .ja v a 2s . c om while (p.nextToken() != JsonToken.END_ARRAY) { JsonPointer pp = JsonPointer.compile(ptr.toString() + "/" + i); context.setAttribute(ATTRIBUTE_PARENT, node); context.setAttribute(ATTRIBUTE_POINTER, pp); AbstractNode v = deserialize(p, context); node.add(v); i++; } node.setStartLocation(createLocation(startLocation)); node.setEndLocation(createLocation(p.getCurrentLocation())); return node; }
From source file:com.msopentech.odatajclient.engine.data.metadata.edm.EntityTypeDeserializer.java
@Override protected AbstractEntityType doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final AbstractEntityType entityType = ODataVersion.V3 == client.getWorkingVersion() ? new com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityType() : new com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntityType(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { entityType.setName(jp.nextTextValue()); } else if ("Abstract".equals(jp.getCurrentName())) { entityType.setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("BaseType".equals(jp.getCurrentName())) { entityType.setBaseType(jp.nextTextValue()); } else if ("OpenType".equals(jp.getCurrentName())) { entityType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("HasStream".equals(jp.getCurrentName())) { entityType.setHasStream(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("Key".equals(jp.getCurrentName())) { jp.nextToken();// ww w.j a v a 2 s. c o m entityType.setKey(jp.getCodec().readValue(jp, EntityKey.class)); } else if ("Property".equals(jp.getCurrentName())) { jp.nextToken(); if (entityType instanceof com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityType) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityType) entityType) .getProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v3.Property.class)); } else { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntityType) entityType) .getProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v4.Property.class)); } } else if ("NavigationProperty".equals(jp.getCurrentName())) { jp.nextToken(); if (entityType instanceof com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityType) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntityType) entityType) .getNavigationProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v3.NavigationProperty.class)); } else { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntityType) entityType) .getNavigationProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v4.NavigationProperty.class)); } } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntityType) entityType) .setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return entityType; }
From source file:com.bazaarvoice.jsonpps.PrettyPrintJson.java
public void prettyPrint(List<File> inputFiles, File outputFile) throws IOException { JsonFactory factory = new JsonFactory(); factory.disable(JsonFactory.Feature.INTERN_FIELD_NAMES); if (!strict) { factory.enable(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER); factory.enable(JsonParser.Feature.ALLOW_COMMENTS); factory.enable(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS); factory.enable(JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS); factory.enable(JsonParser.Feature.ALLOW_SINGLE_QUOTES); factory.enable(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS); factory.enable(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES); }/*from w w w . jav a 2s . co m*/ ObjectMapper mapper = null; if (sortKeys) { mapper = new ObjectMapper(factory); mapper.enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS); mapper.disable(SerializationFeature.FLUSH_AFTER_WRITE_VALUE); } // Open the output stream and create the Json emitter. JsonGenerator generator; File tempOutputFile = null; if (STDINOUT.equals(outputFile)) { generator = factory.createGenerator(stdout, JsonEncoding.UTF8); } else if (!caseInsensitiveContains(inputFiles, outputFile)) { generator = factory.createGenerator(outputFile, JsonEncoding.UTF8); } else { // Writing to an input file.. use a temp file to stage the output until we're done. tempOutputFile = getTemporaryFileFor(outputFile); generator = factory.createGenerator(tempOutputFile, JsonEncoding.UTF8); } try { // Separate top-level objects by a newline in the output. String newline = System.getProperty("line.separator"); generator.setPrettyPrinter(new DefaultPrettyPrinter(newline)); if (wrap) { generator.writeStartArray(); } for (File inputFile : inputFiles) { JsonParser parser; if (STDINOUT.equals(inputFile)) { parser = factory.createParser(stdin); } else { parser = factory.createParser(inputFile); } try { while (parser.nextToken() != null) { copyCurrentStructure(parser, mapper, 0, generator); } } finally { parser.close(); } } if (wrap) { generator.writeEndArray(); } generator.writeRaw(newline); } finally { generator.close(); } if (tempOutputFile != null && !tempOutputFile.renameTo(outputFile)) { System.err.println("error: unable to rename temporary file to output: " + outputFile); System.exit(1); } }
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 ww w . j a v a 2 s . c o m*/ 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 expect(JsonParser parser, JsonToken token) throws IOException { final JsonToken t = parser.nextToken(); if (t != token) { throw new RuntimeException("expected " + token + ", got " + t); }/*from w w w .j av a 2 s. c o m*/ }
From source file:de.konqi.fitapi.auth.PublicKeysManager.java
/** * Forces a refresh of the public certificates downloaded from {@link #getPublicCertsEncodedUrl}. * * <p>// w w w . j a v a 2s .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: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());// w w w. j a v a 2 s . c o 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.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; }/*w w w . j av a 2s . c o m*/ 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:org.graylog2.gelfclient.encoder.GelfMessageJsonEncoderTest.java
@Test public void testNullLevel() throws Exception { final EmbeddedChannel channel = new EmbeddedChannel(new GelfMessageJsonEncoder()); final GelfMessage message = new GelfMessageBuilder("test").build(); message.setLevel(null);/*w ww . j ava 2s.c o m*/ assertTrue(channel.writeOutbound(message)); assertTrue(channel.finish()); 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); assertNull(level); }