Example usage for com.fasterxml.jackson.core JsonEncoding UTF8

List of usage examples for com.fasterxml.jackson.core JsonEncoding UTF8

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonEncoding UTF8.

Prototype

JsonEncoding UTF8

To view the source code for com.fasterxml.jackson.core JsonEncoding UTF8.

Click Source Link

Usage

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);
}