Example usage for com.fasterxml.jackson.core JsonGenerator close

List of usage examples for com.fasterxml.jackson.core JsonGenerator close

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonGenerator close.

Prototype

@Override
public abstract void close() throws IOException;

Source Link

Document

Method called to close this generator, so that no more content can be written.

Usage

From source file:com.sdl.odata.renderer.json.util.JsonWriterUtilTest.java

@Test
public void testWritePrimitiveValues() throws Exception {

    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    JsonGenerator jsonGenerator = new JsonFactory().createGenerator(stream, JsonEncoding.UTF8);

    jsonGenerator.writeStartObject();//from   www.  jav a  2  s .c om
    appendPrimitiveValue("MyString", "Some text", jsonGenerator);
    appendPrimitiveValue("MyByteProperty", Byte.MAX_VALUE, jsonGenerator);
    appendPrimitiveValue("MyShortProperty", (short) 1, jsonGenerator);
    appendPrimitiveValue("MyIntegerProperty", 2, jsonGenerator);
    appendPrimitiveValue("MyFloatProperty", 3.0f, jsonGenerator);
    appendPrimitiveValue("MyDoubleProperty", 4.0d, jsonGenerator);
    appendPrimitiveValue("MyLongProperty", (long) 5, jsonGenerator);
    appendPrimitiveValue("MyBooleanProperty", true, jsonGenerator);
    appendPrimitiveValue("MyUUIDProperty", UUID.fromString("23492a5b-c4f1-4a50-b7a5-d8ebd6067902"),
            jsonGenerator);
    appendPrimitiveValue("DecimalValueProperty", BigDecimal.valueOf(21), jsonGenerator);

    jsonGenerator.writeEndObject();
    jsonGenerator.close();

    assertEquals(prettyPrintJson(readContent(EXPECTED_PRIMITIVE_VALUES_PATH)),
            prettyPrintJson(stream.toString()));
}

From source file:net.opentsdb.tree.Branch.java

/**
 * Returns serialized data for the branch to put in storage. This is necessary
 * to reduce storage space and for proper CAS calls
 * @return A byte array for storage//from   www . j av  a 2 s  . co  m
 */
private byte[] toStorageJson() {
    // grab some memory to avoid reallocs
    final ByteArrayOutputStream output = new ByteArrayOutputStream(
            (display_name.length() * 2) + (path.size() * 128));
    try {
        final JsonGenerator json = JSON.getFactory().createGenerator(output);

        json.writeStartObject();

        // we only need to write a small amount of information
        json.writeObjectField("path", path);
        json.writeStringField("displayName", display_name);

        json.writeEndObject();
        json.close();

        // TODO zero copy?
        return output.toByteArray();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.teiid.olingo.TeiidODataJsonSerializer.java

public SerializerResult complexCollection(final ServiceMetadata metadata, final EdmComplexType type,
        final Property result, final ContextURL contextURL, final URI nextLink) throws SerializerException {
    CircleStreamBuffer buffer = new CircleStreamBuffer();
    try {/*www  .j  a v  a2s .c  om*/
        JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
        json.writeStartObject();

        if (contextURL != null && (isODataMetadataFull || !isODataMetadataNone)) {
            json.writeStringField(Constants.JSON_CONTEXT, ContextURLBuilder.create(contextURL).toASCIIString());
        }
        json.writeFieldName(Constants.VALUE);
        json.writeStartArray();
        for (Object value : result.asCollection()) {
            json.writeStartObject();
            writeComplexValue(metadata, type, ((ComplexValue) value).getValue(), null, json, null,
                    (ComplexValue) value, null, result.getName());
            json.writeEndObject();
        }
        json.writeEndArray();

        if (nextLink != null) {
            json.writeStringField(Constants.JSON_NEXT_LINK, nextLink.toASCIIString());
        }

        json.close();
    } catch (final IOException e) {
        throw new SerializerException("An I/O exception occurred.", e,
                SerializerException.MessageKeys.IO_EXCEPTION);
    }
    return SerializerResultImpl.with().content(buffer.getInputStream()).build();
}

From source file:org.sead.repositories.reference.RefRepository.java

private static void indexChildren(File index, JsonParser jp) throws IOException {

    JsonGenerator generator = new JsonFactory().createGenerator(index, JsonEncoding.UTF8);
    generator.useDefaultPrettyPrinter();

    generator.writeStartObject();//www  .  ja v a  2 s  .  c o  m

    JsonToken cur = jp.nextToken();
    while (cur.equals(JsonToken.START_OBJECT)) {
        long start = jp.getTokenLocation().getByteOffset();
        int depth = 1;
        while (depth > 0) {
            cur = jp.nextToken();
            if (cur.equals(JsonToken.START_OBJECT)) {
                depth++;
            } else if (cur.equals(JsonToken.END_OBJECT)) {
                depth--;
            } else if (cur.equals(JsonToken.FIELD_NAME) && depth == 1) {
                if (jp.getText().equals("@id")) {
                    cur = jp.nextToken();

                    String vName = jp.getText();
                    generator.writeNumberField(vName, start);
                } else {
                    report(jp, cur);
                }
            }
        }
        cur = jp.nextToken();
    }
    generator.writeEndObject();
    generator.close();

}

From source file:TDS.Shared.Messages.MessageJson.java

public String create(ContextType contextType, List<String> contexts) throws ReturnStatusException {
    MessageContextType messageContextType = null;
    StringWriter sw = new StringWriter();
    JsonFactory jsonFactory = new JsonFactory();
    JsonGenerator jsonWriter;

    try {/*from w w w. ja v  a2s .c  om*/
        if (_messageSystem != null) {
            messageContextType = _messageSystem.getMessageContextType(contextType);
        }

        if (messageContextType == null)
            return "{}";

        jsonWriter = jsonFactory.createGenerator(sw);
        jsonWriter.writeStartObject();
        jsonWriter.writeStringField("c_l", _language); // "c_l": _language
        jsonWriter.writeFieldName("c_a"); // "c_a" :
        jsonWriter.writeStartArray(); // [

        for (String context : contexts) {
            MessageContext messageContext = messageContextType.getContext(context);
            writeContextElement(messageContext, jsonWriter);
        }

        jsonWriter.writeEndArray(); // ]
        jsonWriter.writeEndObject(); // }

        jsonWriter.close();
        sw.close();
    } catch (IOException e) {
        ReturnStatus rs = new ReturnStatus("failed", "Serialization failed: " + e.getMessage());
        throw new ReturnStatusException(rs);
    }

    return sw.getBuffer().toString();
}

From source file:ch.ralscha.extdirectspring.controller.RouterController.java

@SuppressWarnings("resource")
public void writeJsonResponse(HttpServletResponse response, Object responseObject, Class<?> jsonView,
        boolean streamResponse, boolean isMultipart) throws IOException {

    ObjectMapper objectMapper = this.configurationService.getJsonHandler().getMapper();

    if (isMultipart) {
        response.setContentType(RouterController.TEXT_HTML.toString());
        response.setCharacterEncoding(RouterController.TEXT_HTML.getCharset().name());

        ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
        bos.write("<html><body><textarea>".getBytes(ExtDirectSpringUtil.UTF8_CHARSET));

        String responseJson;/*w ww . j a va2s . c o m*/
        if (jsonView == null) {
            responseJson = objectMapper.writeValueAsString(responseObject);
        } else {
            responseJson = objectMapper.writerWithView(jsonView).writeValueAsString(responseObject);
        }

        responseJson = responseJson.replace("&quot;", "\\&quot;");
        bos.write(responseJson.getBytes(ExtDirectSpringUtil.UTF8_CHARSET));

        String frameDomain = this.configurationService.getConfiguration().getFrameDomain();
        String frameDomainScript = "";
        if (frameDomain != null) {
            frameDomainScript = String
                    .format(this.configurationService.getConfiguration().getFrameDomainScript(), frameDomain);
        }
        bos.write(("</textarea>" + frameDomainScript + "</body></html>")
                .getBytes(ExtDirectSpringUtil.UTF8_CHARSET));

        response.setContentLength(bos.size());
        FileCopyUtils.copy(bos.toByteArray(), response.getOutputStream());
    } else {

        response.setContentType(APPLICATION_JSON.toString());
        response.setCharacterEncoding(APPLICATION_JSON.getCharset().name());

        ServletOutputStream outputStream = response.getOutputStream();

        if (!streamResponse) {
            ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
            JsonGenerator jsonGenerator = objectMapper.getFactory().createGenerator(bos, JsonEncoding.UTF8);

            if (jsonView == null) {
                objectMapper.writeValue(jsonGenerator, responseObject);
            } else {
                objectMapper.writerWithView(jsonView).writeValue(jsonGenerator, responseObject);
            }

            response.setContentLength(bos.size());
            outputStream.write(bos.toByteArray());
            jsonGenerator.close();
        } else {
            JsonGenerator jsonGenerator = objectMapper.getFactory().createGenerator(outputStream,
                    JsonEncoding.UTF8);
            if (jsonView == null) {
                objectMapper.writeValue(jsonGenerator, responseObject);
            } else {
                objectMapper.writerWithView(jsonView).writeValue(jsonGenerator, responseObject);
            }
            jsonGenerator.close();
        }

        outputStream.flush();
    }
}

From source file:org.n52.ar.layar.LayarServlet.java

/**
 * http://layar.com/documentation/browser/api/getpois-request/
 */// w  ww .  j  a v  a  2  s.  com
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String userAgent = request.getHeader("User-agent");
    log.debug("User-agent={}", userAgent);

    /*
     * mandatory:
     */
    String userId = request.getParameter("userId");
    String version = request.getParameter("version");
    String countryCode = request.getParameter("countryCode");
    String lang = request.getParameter("lang");

    String action = request.getParameter("action");
    if (action == null) {
        // response.sendError(HttpServletResponse.SC_BAD_REQUEST,
        // "Missing parameter 'action'");
        // return;
        log.debug("No action given.");
    }

    String latParam = request.getParameter("lat");
    if (latParam == null) {
        response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing parameter 'lat'");
        return;
    }

    String lonParam = request.getParameter("lon");
    if (lonParam == null) {
        response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing parameter 'lon'");
        return;
    }

    String radiusParam = request.getParameter("radius");
    if (radiusParam == null) {
        response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing parameter 'radius'");
        return;
    }

    /*
     * optional:
     */
    String accurary = request.getParameter("accuracy");
    String pageKey = request.getParameter("pageKey");
    // String oauth_consumer_key =
    // request.getParameter("oauth_consumer_key");
    // String oauth_signature_method =
    // request.getParameter("oauth_signature_method");
    String radiolist = request.getParameter("RADIOLIST");
    String searchbox = request.getParameter("SEARCHBOX");
    String custom_slider = request.getParameter("CUSTOM_SLIDER");
    String checkboxlist = request.getParameter("CHECKBOXLIST");
    String localCountryCode = request.getParameter("localCountryCode");
    String alt = request.getParameter("alt"); // current altitude
    String recognizedReferenceImage = request.getParameter("recognizedReferenceImage");

    // convert parameters
    float lat = Float.parseFloat(latParam);
    float lon = Float.parseFloat(lonParam);
    double[] center = new double[] { lat, lon };
    float radius = Float.parseFloat(radiusParam);

    // get nearby sensors
    LayarResponse layarResponse = new LayarResponse();
    layarResponse.layer = request.getParameter("layerName");
    if (layarResponse.layer == null) {
        response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing parameter 'layerName'");
        return;
    }

    response.setContentType("application/json; charset=utf-8");
    JsonGenerator generator = this.factory.createJsonGenerator(response.getWriter());
    generator.useDefaultPrettyPrinter();

    // query SIR
    try {
        Collection<SirPOI> pois = querySIR(center, radius, REQUEST_FORMAT);

        for (SirPOI sirPOI : pois) {
            if (sirPOI instanceof Hotspot) {
                Hotspot h = (Hotspot) sirPOI;
                layarResponse.hotspots.add(h);
            }
        }
    } catch (Exception e) {
        log.error("Error querying SIR.", e);
        layarResponse.errorCode = LayarResponse.CODE_ERROR;
        layarResponse.errorString = e.toString() + ": " + e.getMessage();
        layarResponse.showMessage = "Server side exception!";
    }

    // write response
    layarResponse.toJSON(generator);

    // clean up
    generator.close();
    response.flushBuffer();
}

From source file:org.jmxtrans.embedded.output.CopperEggWriter.java

public String write_tostring(JsonNode json) {
    ObjectMapper mapper = new ObjectMapper();
    StringWriter out = new StringWriter();

    try {/*from w  w  w  .j  a  va  2  s . com*/
        JsonFactory fac = new JsonFactory();
        JsonGenerator gen = fac.createJsonGenerator(out);

        // Now write:
        mapper.writeTree(gen, json);
        gen.flush();
        gen.close();
        return out.toString();
    } catch (Exception e) {
        exceptionCounter.incrementAndGet();
        logger.warn("Exception in write_tostring: " + e);
    }
    return (null);
}

From source file:com.predic8.membrane.core.interceptor.authentication.session.TelekomSMSTokenProvider.java

@Override
protected void sendSMS(String text, String recipientNumber) {
    recipientNumber = recipientNumber.replaceAll("^00", "\\+");

    try {/*w  w  w  . ja  va 2s .  c  o  m*/
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        JsonFactory jsonFactory = new JsonFactory();
        JsonGenerator jg = jsonFactory.createGenerator(baos, JsonEncoding.UTF8);

        jg.writeStartObject();
        jg.writeObjectFieldStart("outboundSMSMessageRequest");
        jg.writeArrayFieldStart("address");
        jg.writeString("tel:" + recipientNumber);
        jg.writeEndArray();
        jg.writeStringField("senderAddress", senderAddress);
        jg.writeObjectFieldStart("outboundSMSTextMessage");
        jg.writeStringField("message", text);
        jg.writeEndObject();
        jg.writeStringField("outboundEncoding", "7bitGSM");
        jg.writeStringField("clientCorrelator", "" + ((long) (Math.random() * Long.MAX_VALUE)));
        if (senderName != null)
            jg.writeStringField("senderName", senderName);
        jg.writeEndObject();
        jg.writeEndObject();

        jg.close();

        Exchange exc = new Request.Builder()
                .post("https://gateway.developer.telekom.com/plone/sms/rest/"
                        + environment.name().toLowerCase() + "/smsmessaging/v1/outbound/"
                        + URLEncoder.encode(senderAddress, "UTF-8") + "/requests")
                .header("Host", "gateway.developer.telekom.com")
                .header("Authorization",
                        "OAuth realm=\"developergarden.com\",oauth_token=\"" + getAccessToken() + "\"")
                .header("Accept", "application/json").header("Content-Type", "application/json")
                .body(baos.toByteArray()).buildExchange();

        exc.setRule(new NullRule() {
            @Override
            public SSLProvider getSslOutboundContext() {
                return new SSLContext(new SSLParser(), new ResolverMap(), null);
            }
        });
        hc.call(exc, false, true);

        if (exc.getResponse().getStatusCode() != 201)
            throw new RuntimeException("Could not send SMS: " + exc.getResponse());

        log.debug("sent SMS to " + recipientNumber);
    } catch (Exception e2) {
        throw new RuntimeException(e2);
    }
}

From source file:TDS.Shared.Messages.MessageJson.java

public String create() throws ReturnStatusException {
    StringWriter sw = new StringWriter();
    JsonFactory jsonFactory = new JsonFactory();
    JsonGenerator jsonWriter;

    try {//  w ww  .j a v a 2  s.c om
        if (_messageSystem == null)
            return "{}";

        jsonWriter = jsonFactory.createGenerator(sw);
        jsonWriter.writeStartObject();

        jsonWriter.writeStringField("c_l", _language); // "c_l": _language
        jsonWriter.writeFieldName("c_a"); // "c_a" :
        jsonWriter.writeStartArray(); // [

        // get all the message contexts across all the context types
        List<MessageContext> messageContexts = new ArrayList<MessageContext>();
        for (MessageContextType contextType : _messageSystem.getContextTypes()) {
            messageContexts.addAll(contextType.getContexts());
        }

        for (MessageContext messageContext : messageContexts) {
            writeContextElement(messageContext, jsonWriter);
        }

        jsonWriter.writeEndArray(); // ]
        jsonWriter.writeEndObject(); // }

        jsonWriter.close();
        sw.close();
    } catch (IOException e) {
        ReturnStatus rs = new ReturnStatus("failed", "Serialization failed: " + e.getMessage());
        throw new ReturnStatusException(rs);
    }

    return sw.getBuffer().toString();
}