List of usage examples for com.fasterxml.jackson.core JsonEncoding UTF8
JsonEncoding UTF8
To view the source code for com.fasterxml.jackson.core JsonEncoding UTF8.
Click Source Link
From source file:io.airlift.jaxrs.JsonMapper.java
@Override public void writeTo(Object value, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream outputStream) throws IOException { // Prevent broken browser from attempting to render the json as html httpHeaders.add(HttpHeaders.X_CONTENT_TYPE_OPTIONS, "nosniff"); JsonFactory jsonFactory = objectMapper.getJsonFactory(); jsonFactory.setCharacterEscapes(HTMLCharacterEscapes.INSTANCE); JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(outputStream, JsonEncoding.UTF8); // Important: we are NOT to close the underlying stream after // mapping, so we need to instruct generator: jsonGenerator.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET); // Pretty print? if (isPrettyPrintRequested()) { jsonGenerator.useDefaultPrettyPrinter(); }/*from ww w .java2 s.c om*/ // 04-Mar-2010, tatu: How about type we were given? (if any) JavaType rootType = null; if (genericType != null && value != null) { // 10-Jan-2011, tatu: as per [JACKSON-456], it's not safe to just force root // type since it prevents polymorphic type serialization. Since we really // just need this for generics, let's only use generic type if it's truly // generic. if (genericType.getClass() != Class.class) { // generic types are other implementations of 'java.lang.reflect.Type' // This is still not exactly right; should root type be further // specialized with 'value.getClass()'? Let's see how well this works before // trying to come up with more complete solution. rootType = objectMapper.getTypeFactory().constructType(genericType); // 26-Feb-2011, tatu: To help with [JACKSON-518], we better recognize cases where // type degenerates back into "Object.class" (as is the case with plain TypeVariable, // for example), and not use that. // if (rootType.getRawClass() == Object.class) { rootType = null; } } } String jsonpFunctionName = getJsonpFunctionName(); if (jsonpFunctionName != null) { value = new JSONPObject(jsonpFunctionName, value, rootType); rootType = null; } ObjectWriter writer; if (rootType != null) { writer = objectMapper.writerWithType(rootType); } else { writer = objectMapper.writer(); } writer.writeValue(jsonGenerator, value); // add a newline so when you use curl it looks nice outputStream.write('\n'); }
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); }/*www . ja v a 2 s. c om*/ 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:tuwien.aic.crowdsourcing.util.MappingJackson2HttpMessageConverter.java
/** * Determine the JSON encoding to use for the given content type. * /*from w w w . j av a 2 s .c o m*/ * @param contentType the media type as requested by the caller * @return the JSON encoding to use (never <code>null</code>) */ protected JsonEncoding getJsonEncoding(MediaType contentType) { if ((contentType != null) && (contentType.getCharSet() != null)) { Charset charset = contentType.getCharSet(); for (JsonEncoding encoding : JsonEncoding.values()) { if (charset.name().equals(encoding.getJavaName())) { return encoding; } } } return JsonEncoding.UTF8; }
From source file:test.com.azaptree.services.json.JsonUtilsTest.java
@Test public void test_serialize_JSONEncoding() throws JsonGenerationException, IOException { final ByteArrayOutputStream bos = new ByteArrayOutputStream(); final JsonGenerator generator = JsonUtils.createJsonGenerator(bos, JsonEncoding.UTF8); generator.writeStartObject();/*from w w w .ja v a 2 s . com*/ generator.writeStringField("stringField", "stringFieldValue"); generator.writeNumberField("numberField", 5); generator.writeEndObject(); generator.close(); final Map<String, Object> test = JsonUtils.parse(new ByteArrayInputStream(bos.toByteArray())); Assert.assertEquals(test.get("stringField"), "stringFieldValue"); Assert.assertEquals(test.get("numberField"), 5); }
From source file:com.googlecode.jmxtrans.model.output.LibratoWriter.java
private void serialize(Server server, Query query, List<Result> results, OutputStream outputStream) throws IOException { JsonGenerator g = jsonFactory.createGenerator(outputStream, JsonEncoding.UTF8); g.writeStartObject();/*from w w w. j a v a 2s .c om*/ g.writeArrayFieldStart("counters"); g.writeEndArray(); String source = getSource(server); g.writeArrayFieldStart("gauges"); List<String> typeNames = getTypeNames(); for (Result result : results) { Map<String, Object> resultValues = result.getValues(); for (Map.Entry<String, Object> values : resultValues.entrySet()) { if (isNumeric(values.getValue())) { g.writeStartObject(); g.writeStringField("name", KeyUtils.getKeyString(query, result, values, typeNames)); if (source != null && !source.isEmpty()) { g.writeStringField("source", source); } g.writeNumberField("measure_time", TimeUnit.SECONDS.convert(result.getEpoch(), TimeUnit.MILLISECONDS)); Object value = values.getValue(); if (value instanceof Integer) { g.writeNumberField("value", (Integer) value); } else if (value instanceof Long) { g.writeNumberField("value", (Long) value); } else if (value instanceof Float) { g.writeNumberField("value", (Float) value); } else if (value instanceof Double) { g.writeNumberField("value", (Double) value); } g.writeEndObject(); } } } g.writeEndArray(); g.writeEndObject(); g.flush(); g.close(); }
From source file:gov.bnl.channelfinder.ChannelsResource.java
/** * GET method for retrieving a collection of Channel instances, * based on a multi-parameter query specifiying patterns for tags, property values, * and channel names to match against./* ww w . j a va2s . c o m*/ * * @return HTTP Response */ @GET @Produces({ "application/json" }) public Response query() { StringBuffer performance = new StringBuffer(); long start = System.currentTimeMillis(); long totalStart = System.currentTimeMillis(); Client client = ElasticSearchClient.getSearchClient(); start = System.currentTimeMillis(); String user = securityContext.getUserPrincipal() != null ? securityContext.getUserPrincipal().getName() : ""; try { MultivaluedMap<String, String> parameters = uriInfo.getQueryParameters(); BoolQueryBuilder qb = boolQuery(); int size = 10000; for (Entry<String, List<String>> parameter : parameters.entrySet()) { switch (parameter.getKey()) { case "~name": for (String value : parameter.getValue()) { DisMaxQueryBuilder nameQuery = disMaxQuery(); for (String pattern : value.split("\\|")) { nameQuery.add(wildcardQuery("name", pattern.trim())); } qb.must(nameQuery); } break; case "~tag": for (String value : parameter.getValue()) { DisMaxQueryBuilder tagQuery = disMaxQuery(); for (String pattern : value.split("\\|")) { tagQuery.add(wildcardQuery("tags.name", pattern.trim())); } qb.must(nestedQuery("tags", tagQuery)); } break; case "~size": Optional<String> maxSize = parameter.getValue().stream().max((o1, o2) -> { return Integer.valueOf(o1).compareTo(Integer.valueOf(o2)); }); if (maxSize.isPresent()) { size = Integer.valueOf(maxSize.get()); } default: DisMaxQueryBuilder propertyQuery = disMaxQuery(); for (String value : parameter.getValue()) { for (String pattern : value.split("\\|")) { propertyQuery.add(nestedQuery("properties", boolQuery().must(matchQuery("properties.name", parameter.getKey().trim())) .must(wildcardQuery("properties.value", pattern.trim())))); } } qb.must(propertyQuery); break; } } performance.append("|prepare:" + (System.currentTimeMillis() - start)); start = System.currentTimeMillis(); final SearchResponse qbResult = client.prepareSearch("channelfinder").setQuery(qb).setSize(size) .execute().actionGet(); performance.append( "|query:(" + qbResult.getHits().getTotalHits() + ")" + (System.currentTimeMillis() - start)); start = System.currentTimeMillis(); final ObjectMapper mapper = new ObjectMapper(); mapper.addMixIn(XmlProperty.class, OnlyXmlProperty.class); mapper.addMixIn(XmlTag.class, OnlyXmlTag.class); start = System.currentTimeMillis(); StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException { JsonGenerator jg = mapper.getFactory().createGenerator(os, JsonEncoding.UTF8); jg.writeStartArray(); if (qbResult != null) { for (SearchHit hit : qbResult.getHits()) { jg.writeObject(mapper.readValue(hit.source(), XmlChannel.class)); jg.flush(); } } jg.writeEndArray(); jg.flush(); jg.close(); } }; performance.append("|parse:" + (System.currentTimeMillis() - start)); Response r = Response.ok(stream).build(); log.info(user + "|" + uriInfo.getPath() + "|GET|OK" + performance.toString() + "|total:" + (System.currentTimeMillis() - totalStart) + "|" + r.getStatus() + "|returns " + qbResult.getHits().getTotalHits() + " channels"); // log.info( qbResult.getHits().getTotalHits() + " " +(System.currentTimeMillis() - totalStart)); return r; } catch (Exception e) { return handleException(user, "GET", Response.Status.INTERNAL_SERVER_ERROR, e); } finally { } }
From source file:org.dswarm.xsd2jsonschema.model.test.JSRootTest.java
@Test public void testOverloadedRender() throws Exception { final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); final StringWriter writer = new StringWriter(); File tmpFile;/*from w ww. j a v a 2 s . c om*/ final String render = obj.render(); doRenderTest(render); obj.render(BaseJSTest.om, outputStream); doRenderTest(outputStream); outputStream.reset(); obj.render(BaseJSTest.om, outputStream, JsonEncoding.UTF8); doRenderTest(outputStream); outputStream.reset(); obj.render(BaseJSTest.om, writer); doRenderTest(writer); outputStream.reset(); tmpFile = File.createTempFile("dmp-test", "tmp"); obj.render(BaseJSTest.om, tmpFile, JsonEncoding.UTF8); doRenderTest(BaseJSTest.om.readTree(tmpFile)); tmpFile.deleteOnExit(); final JsonFactory factory = BaseJSTest.om.getFactory(); obj.render(factory, outputStream); doRenderTest(outputStream); outputStream.reset(); obj.render(factory, outputStream, JsonEncoding.UTF8); doRenderTest(outputStream); outputStream.reset(); obj.render(factory, writer); doRenderTest(writer); outputStream.reset(); tmpFile = File.createTempFile("dmp-test", "tmp"); obj.render(factory, tmpFile, JsonEncoding.UTF8); doRenderTest(BaseJSTest.om.readTree(tmpFile)); tmpFile.deleteOnExit(); final JsonGenerator generator = factory.createGenerator(outputStream); obj.render(generator); generator.flush(); doRenderTest(outputStream); }
From source file:net.floodlightcontroller.configuration.ConfigurationManager.java
/** * Writes a configuration file based on information gathered from * the various configuration listeners.//from w w w . ja va 2s . com * * @param file An optional configuration file name. */ private void writeJsonToFile(String fileName) throws IOException { String configFile = (fileName != null) ? fileName : this.fileName; ObjectMapper mapper = new ObjectMapper(); ObjectNode rootNode = createJsonRootNode(); JsonFactory f = new JsonFactory(); JsonGenerator g = null; try { g = f.createJsonGenerator(new File(configFile), JsonEncoding.UTF8); g.useDefaultPrettyPrinter(); mapper.writeTree(g, rootNode); } catch (IOException e) { if (logger.isErrorEnabled()) { logger.error("Could not write the JSON configuration file."); } throw new IOException("Could not write the JSON configuration file"); } }
From source file:com.twentyn.bioreactor.sensors.Sensor.java
private void setupFiles(String sensorReadingPath) { String logFilename = deviceName.concat(LOG_EXTENSION); Path sensorReadingDirectory = Paths.get(sensorReadingPath, sensorData.getDeviceType()); this.sensorReadingFilePath = Paths.get(sensorReadingDirectory.toString(), deviceName); this.sensorReadingLogFilePath = Paths.get(sensorReadingDirectory.toString(), logFilename); if (!Files.exists(sensorReadingDirectory)) { Boolean madeDir = sensorReadingDirectory.toFile().mkdirs(); if (!madeDir) { LOGGER.error("The following directory could not be accessed or created: %s", sensorReadingDirectory); }//from w w w . j a v a2 s. co m } try { this.jsonGenerator = objectMapper.getFactory() .createGenerator(new File(sensorReadingLogFilePath.toString()), JsonEncoding.UTF8); this.sensorReadingTmp = File.createTempFile(sensorReadingFilePath.toString(), ".tmp"); } catch (IOException e) { LOGGER.error("Error during reading/log files creation: %s", e); System.exit(1); } }
From source file:de.undercouch.bson4jackson.BsonFactory.java
@Override public BsonGenerator createGenerator(File f, JsonEncoding enc) throws IOException { OutputStream out = new FileOutputStream(f); IOContext ctxt = _createContext(out, true); ctxt.setEncoding(enc);/*from www. ja v a2s. c o m*/ if (enc == JsonEncoding.UTF8 && _outputDecorator != null) { out = _outputDecorator.decorate(ctxt, out); } return createGenerator(out, enc); }