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

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

Introduction

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

Prototype

public abstract void writeEndArray() throws IOException, JsonGenerationException;

Source Link

Document

Method for writing closing marker of a JSON Array value (character ']'; plus possible white space decoration if pretty-printing is enabled).

Usage

From source file:ch.ralscha.extdirectspring.util.MapActionSerializer.java

@Override
public void serialize(Map<String, List<Action>> value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException {
    if (null != value) {
        jgen.writeStartObject();// w w w .  j  a v  a2  s .  com
        for (Entry<String, List<Action>> entry : value.entrySet()) {
            String key = entry.getKey();
            jgen.writeArrayFieldStart(key);
            List<Action> actions = entry.getValue();
            for (Action action : actions) {
                // PrettyPrinter is not set the generator is on one line
                // mode
                if (jgen.getPrettyPrinter() != null && action instanceof ActionDoc) {// insertion
                    // of
                    // doc
                    // here
                    ActionDoc actionDoc = (ActionDoc) action;
                    jgen.writeRaw("\n\t/**");
                    if (actionDoc.isDeprecated()) {
                        jgen.writeRaw("\n\t* @deprecated");
                    }
                    jgen.writeRaw("\n\t* " + actionDoc.getName() + ": " + actionDoc.getMethodComment());
                    jgen.writeRaw("\n\t* @author: " + actionDoc.getAuthor());
                    jgen.writeRaw("\n\t* @version: " + actionDoc.getVersion());
                    jgen.writeRaw("\n\t*");
                    for (Entry<String, String> entry2 : actionDoc.getParameters().entrySet()) {
                        jgen.writeRaw("\n\t* @param: [" + entry2.getKey() + "] " + entry2.getValue());
                    }
                    jgen.writeRaw("\n\t* @return");
                    for (Entry<String, String> entry2 : actionDoc.getReturnMethod().entrySet()) {
                        jgen.writeRaw("\n\t*\t [" + entry2.getKey() + "] " + entry2.getValue());
                    }
                    jgen.writeRaw("\n\t*/\n");
                }
                jgen.writeObject(action);
            }
            jgen.writeEndArray();
        }
        jgen.writeEndObject();
    }
}

From source file:org.apache.olingo.server.core.serializer.json.ODataJsonSerializer.java

@Override
public SerializerResult referenceCollection(final ServiceMetadata metadata, final EdmEntitySet edmEntitySet,
        final AbstractEntityCollection entityCollection, final ReferenceCollectionSerializerOptions options)
        throws SerializerException {
    OutputStream outputStream = null;
    SerializerException cachedException = null;
    boolean pagination = false;

    try {//from   w  w  w .  ja  va  2 s.  co  m
        final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
        CircleStreamBuffer buffer = new CircleStreamBuffer();
        final UriHelper uriHelper = new UriHelperImpl();
        outputStream = buffer.getOutputStream();
        final JsonGenerator json = new JsonFactory().createGenerator(outputStream);
        json.writeStartObject();

        writeContextURL(contextURL, json);
        if (options != null && options.getCount() != null && options.getCount().getValue()) {
            writeInlineCount("", entityCollection.getCount(), json);
        }

        json.writeArrayFieldStart(Constants.VALUE);
        for (final Entity entity : entityCollection) {
            json.writeStartObject();
            json.writeStringField(constants.getId(), uriHelper.buildCanonicalURL(edmEntitySet, entity));
            json.writeEndObject();
        }
        json.writeEndArray();

        writeNextLink(entityCollection, json, pagination);

        json.writeEndObject();

        json.close();
        outputStream.close();
        return SerializerResultImpl.with().content(buffer.getInputStream()).build();
    } catch (final IOException e) {
        cachedException = new SerializerException(IO_EXCEPTION_TEXT, e,
                SerializerException.MessageKeys.IO_EXCEPTION);
        throw cachedException;
    } finally {
        closeCircleStreamBufferOutput(outputStream, cachedException);
    }

}

From source file:org.apache.airavata.db.AbstractThriftSerializer.java

@Override
public void serialize(final T value, final JsonGenerator jgen, final SerializerProvider provider)
        throws IOException {
    jgen.writeStartObject();/*from ww w  .j  a  v a2s .c  o m*/
    for (final E field : getFieldValues()) {
        if (value.isSet(field)) {
            final Object fieldValue = value.getFieldValue(field);
            if (fieldValue != null) {
                log.debug("Adding field {} to the JSON string...",
                        CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, field.getFieldName()));

                jgen.writeFieldName(CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, field.getFieldName()));
                if (fieldValue instanceof Short) {
                    jgen.writeNumber((Short) fieldValue);
                } else if (fieldValue instanceof Integer) {
                    jgen.writeNumber((Integer) fieldValue);
                } else if (fieldValue instanceof Long) {
                    jgen.writeNumber((Long) fieldValue);
                } else if (fieldValue instanceof Double) {
                    jgen.writeNumber((Double) fieldValue);
                } else if (fieldValue instanceof Float) {
                    jgen.writeNumber((Float) fieldValue);
                } else if (fieldValue instanceof Boolean) {
                    jgen.writeBoolean((Boolean) fieldValue);
                } else if (fieldValue instanceof String) {
                    jgen.writeString(fieldValue.toString());
                } else if (fieldValue instanceof Collection) {
                    log.debug("Array opened for field {}.",
                            CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, field.getFieldName()));
                    jgen.writeStartArray();
                    for (final Object arrayObject : (Collection<?>) fieldValue) {
                        jgen.writeObject(arrayObject);
                    }
                    jgen.writeEndArray();
                    log.debug("Array closed for field {}.",
                            CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, field.getFieldName()));
                } else {
                    jgen.writeObject(fieldValue);
                }
            } else {
                log.debug("Skipping converting field {} to JSON:  value is null!",
                        CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, field.getFieldName()));
            }
        } else {
            log.debug("Skipping converting field {} to JSON:  field has not been set!",
                    CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, field.getFieldName()));
        }
    }
    jgen.writeEndObject();
}

From source file:com.baidubce.services.bos.BosClient.java

/**
 * Completes a multipart upload by assembling previously uploaded parts.
 *
 * @param request The CompleteMultipartUploadRequest object that specifies all the parameters of this operation.
 * @return A CompleteMultipartUploadResponse from Bos containing the ETag for
 *     the new object composed of the individual parts.
 *//*from  w w w  . j a  v a2  s .  c  om*/
public CompleteMultipartUploadResponse completeMultipartUpload(CompleteMultipartUploadRequest request) {
    checkNotNull(request, "request should not be null.");

    InternalRequest internalRequest = this.createRequest(request, HttpMethodName.POST);
    internalRequest.addParameter("uploadId", request.getUploadId());

    ObjectMetadata metadata = request.getObjectMetadata();
    if (metadata != null) {
        populateRequestMetadata(internalRequest, metadata);
    }

    byte[] json = null;
    List<PartETag> partETags = request.getPartETags();
    StringWriter writer = new StringWriter();
    try {
        JsonGenerator jsonGenerator = JsonUtils.jsonGeneratorOf(writer);
        jsonGenerator.writeStartObject();
        jsonGenerator.writeArrayFieldStart("parts");
        for (PartETag partETag : partETags) {
            jsonGenerator.writeStartObject();
            jsonGenerator.writeNumberField("partNumber", partETag.getPartNumber());
            jsonGenerator.writeStringField("eTag", partETag.getETag());
            jsonGenerator.writeEndObject();
        }
        jsonGenerator.writeEndArray();
        jsonGenerator.writeEndObject();
        jsonGenerator.close();
    } catch (IOException e) {
        throw new BceClientException("Fail to generate json", e);
    }
    try {
        json = writer.toString().getBytes(DEFAULT_ENCODING);
    } catch (UnsupportedEncodingException e) {
        throw new BceClientException("Fail to get UTF-8 bytes", e);
    }

    internalRequest.addHeader(Headers.CONTENT_LENGTH, String.valueOf(json.length));
    internalRequest.addHeader(Headers.CONTENT_TYPE, "application/json");
    internalRequest.setContent(RestartableInputStream.wrap(json));

    CompleteMultipartUploadResponse response = this.invokeHttpClient(internalRequest,
            CompleteMultipartUploadResponse.class);
    response.setBucketName(request.getBucketName());
    return response;
}

From source file:org.openiot.security.oauth.OAuth20ProfileController.java

@Override
protected ModelAndView handleRequestInternal(final HttpServletRequest request,
        final HttpServletResponse response) throws Exception {
    final String accessToken = request.getParameter(OAuthConstants.ACCESS_TOKEN);
    log.debug("accessToken : {}", accessToken);

    final JsonFactory jsonFactory = new JsonFactory();
    final JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(response.getWriter());

    response.setContentType("application/json");

    // accessToken is required
    if (StringUtils.isBlank(accessToken)) {
        log.error("missing accessToken");
        jsonGenerator.writeStartObject();
        jsonGenerator.writeStringField("error", OAuthConstants.MISSING_ACCESS_TOKEN);
        jsonGenerator.writeEndObject();/*from   w  w  w  .  jav a  2  s . c  om*/
        jsonGenerator.close();
        response.flushBuffer();
        return null;
    }

    // get ticket granting ticket
    final TicketGrantingTicket ticketGrantingTicket = (TicketGrantingTicket) this.ticketRegistry
            .getTicket(accessToken);
    if (ticketGrantingTicket == null || ticketGrantingTicket.isExpired()) {
        log.error("expired accessToken : {}", accessToken);
        jsonGenerator.writeStartObject();
        jsonGenerator.writeStringField("error", OAuthConstants.EXPIRED_ACCESS_TOKEN);
        jsonGenerator.writeEndObject();
        jsonGenerator.close();
        response.flushBuffer();
        return null;
    }

    // generate profile : identifier + attributes
    final Principal principal = ticketGrantingTicket.getAuthentication().getPrincipal();
    jsonGenerator.writeStartObject();
    jsonGenerator.writeStringField(CasWrapperProfile.ID, principal.getId());
    jsonGenerator.writeArrayFieldStart(CasWrapperProfile.ATTRIBUTES);
    final Map<String, Object> attributes = principal.getAttributes();
    for (final String key : attributes.keySet()) {
        jsonGenerator.writeStartObject();
        Object vals = attributes.get(key);
        if (vals instanceof Iterable<?>) {
            jsonGenerator.writeArrayFieldStart(key);
            for (final Object value : (Iterable<?>) vals)
                jsonGenerator.writeString(value.toString());
            jsonGenerator.writeEndArray();
        } else if ("role_name".equals(key)) {
            jsonGenerator.writeArrayFieldStart(key);
            if (!StringUtils.isBlank((String) vals))
                jsonGenerator.writeString(vals.toString());
            jsonGenerator.writeEndArray();
        } else
            jsonGenerator.writeObjectField(key, attributes.get(key));

        jsonGenerator.writeEndObject();
    }
    jsonGenerator.writeEndArray();
    jsonGenerator.writeEndObject();
    jsonGenerator.close();
    response.flushBuffer();
    return null;
}

From source file:org.apache.olingo.commons.core.serialization.JsonEntitySetSerializer.java

protected void doContainerSerialize(final ResWrap<EntitySet> container, final JsonGenerator jgen)
        throws IOException, EdmPrimitiveTypeException {

    final EntitySet entitySet = container.getPayload();

    jgen.writeStartObject();/*  w w  w .  j a  v  a  2s .  com*/

    if (serverMode) {
        if (container.getContextURL() != null) {
            jgen.writeStringField(version.compareTo(ODataServiceVersion.V40) >= 0 ? Constants.JSON_CONTEXT
                    : Constants.JSON_METADATA, container.getContextURL().toASCIIString());
        }

        if (version.compareTo(ODataServiceVersion.V40) >= 0
                && StringUtils.isNotBlank(container.getMetadataETag())) {
            jgen.writeStringField(Constants.JSON_METADATA_ETAG, container.getMetadataETag());
        }
    }

    if (entitySet.getId() != null) {
        jgen.writeStringField(version.getJsonName(ODataServiceVersion.JsonKey.ID),
                entitySet.getId().toASCIIString());
    }
    jgen.writeNumberField(version.getJsonName(ODataServiceVersion.JsonKey.COUNT),
            entitySet.getCount() == null ? entitySet.getEntities().size() : entitySet.getCount());
    if (serverMode) {
        if (entitySet.getNext() != null) {
            jgen.writeStringField(version.getJsonName(ODataServiceVersion.JsonKey.NEXT_LINK),
                    entitySet.getNext().toASCIIString());
        }
        if (entitySet.getDeltaLink() != null) {
            jgen.writeStringField(version.getJsonName(ODataServiceVersion.JsonKey.DELTA_LINK),
                    entitySet.getDeltaLink().toASCIIString());
        }
    }

    for (Annotation annotation : entitySet.getAnnotations()) {
        valuable(jgen, annotation, "@" + annotation.getTerm());
    }

    jgen.writeArrayFieldStart(Constants.VALUE);
    final JsonEntitySerializer entitySerializer = new JsonEntitySerializer(version, serverMode);
    for (Entity entity : entitySet.getEntities()) {
        entitySerializer.doSerialize(entity, jgen);
    }
    jgen.writeEndArray();

    jgen.writeEndObject();
}

From source file:org.apache.olingo.client.core.serialization.JsonSerializer.java

protected void clientLinks(final Linked linked, final JsonGenerator jgen)
        throws IOException, EdmPrimitiveTypeException {

    final Map<String, List<String>> entitySetLinks = new HashMap<String, List<String>>();
    for (Link link : linked.getNavigationLinks()) {
        for (Annotation annotation : link.getAnnotations()) {
            valuable(jgen, annotation, link.getTitle() + "@" + annotation.getTerm());
        }/* w  w  w.j  av  a2 s .c o  m*/

        if (isEntitySetNavigation(link)) {
            final List<String> uris;
            if (entitySetLinks.containsKey(link.getTitle())) {
                uris = entitySetLinks.get(link.getTitle());
            } else {
                uris = new ArrayList<String>();
                entitySetLinks.put(link.getTitle(), uris);
            }
            if (StringUtils.isNotBlank(link.getHref())) {
                uris.add(link.getHref());
            }
        } else {
            if (StringUtils.isNotBlank(link.getHref())) {
                jgen.writeStringField(link.getTitle() + Constants.JSON_BIND_LINK_SUFFIX, link.getHref());
            }
        }

        if (link.getInlineEntity() != null) {
            jgen.writeFieldName(link.getTitle());
            new JsonEntitySerializer(serverMode, contentType).doSerialize(link.getInlineEntity(), jgen);
        } else if (link.getInlineEntitySet() != null) {
            jgen.writeArrayFieldStart(link.getTitle());
            final JsonEntitySerializer entitySerializer = new JsonEntitySerializer(serverMode, contentType);
            for (Entity subEntry : link.getInlineEntitySet().getEntities()) {
                entitySerializer.doSerialize(subEntry, jgen);
            }
            jgen.writeEndArray();
        }
    }
    for (Map.Entry<String, List<String>> entitySetLink : entitySetLinks.entrySet()) {
        if (!entitySetLink.getValue().isEmpty()) {
            jgen.writeArrayFieldStart(entitySetLink.getKey() + Constants.JSON_BIND_LINK_SUFFIX);
            for (String uri : entitySetLink.getValue()) {
                jgen.writeString(uri);
            }
            jgen.writeEndArray();
        }
    }
}

From source file:org.apache.olingo.client.core.serialization.JsonSerializer.java

protected void serverLinks(final Linked linked, final JsonGenerator jgen)
        throws IOException, EdmPrimitiveTypeException {
    if (linked instanceof Entity) {
        for (Link link : ((Entity) linked).getMediaEditLinks()) {
            if (StringUtils.isNotBlank(link.getHref())) {
                jgen.writeStringField(/*ww w. j  a  va2 s .  co m*/
                        link.getTitle() + StringUtils.prependIfMissing(Constants.JSON_MEDIA_EDIT_LINK, "@"),
                        link.getHref());
            }
        }
    }

    for (Link link : linked.getAssociationLinks()) {
        if (StringUtils.isNotBlank(link.getHref())) {
            jgen.writeStringField(link.getTitle() + Constants.JSON_ASSOCIATION_LINK, link.getHref());
        }
    }

    for (Link link : linked.getNavigationLinks()) {
        for (Annotation annotation : link.getAnnotations()) {
            valuable(jgen, annotation, link.getTitle() + "@" + annotation.getTerm());
        }

        if (StringUtils.isNotBlank(link.getHref())) {
            jgen.writeStringField(link.getTitle() + Constants.JSON_NAVIGATION_LINK, link.getHref());
        }

        if (link.getInlineEntity() != null) {
            jgen.writeFieldName(link.getTitle());
            new JsonEntitySerializer(serverMode, contentType).doSerialize(link.getInlineEntity(), jgen);
        } else if (link.getInlineEntitySet() != null) {
            jgen.writeArrayFieldStart(link.getTitle());
            JsonEntitySerializer entitySerializer = new JsonEntitySerializer(serverMode, contentType);
            for (Entity subEntry : link.getInlineEntitySet().getEntities()) {
                entitySerializer.doSerialize(subEntry, jgen);
            }
            jgen.writeEndArray();
        }
    }
}

From source file:com.google.openrtb.json.OpenRtbJsonWriter.java

protected void writeUserFields(User user, JsonGenerator gen) throws IOException {
    if (user.hasId()) {
        gen.writeStringField("id", user.getId());
    }/*from  w  w  w.j  a va2  s  . co  m*/
    if (user.hasBuyeruid()) {
        gen.writeStringField("buyeruid", user.getBuyeruid());
    }
    if (user.hasYob()) {
        gen.writeNumberField("yob", user.getYob());
    }
    if (user.hasGender() && Gender.forCode(user.getGender()) != null) {
        gen.writeStringField("gender", user.getGender());
    }
    if (user.hasKeywords()) {
        gen.writeStringField("keywords", user.getKeywords());
    }
    if (user.hasCustomdata()) {
        gen.writeStringField("customdata", user.getCustomdata());
    }
    if (user.hasGeo()) {
        gen.writeFieldName("geo");
        writeGeo(user.getGeo(), gen);
    }
    if (user.getDataCount() != 0) {
        gen.writeArrayFieldStart("data");
        for (Data data : user.getDataList()) {
            writeData(data, gen);
        }
        gen.writeEndArray();
    }
}

From source file:com.baidubce.services.bos.BosClient.java

/**
 * Sets the Acl for the specified Bos bucket.
 *
 * @param request The request object containing the bucket to modify and the ACL to set.
 *//*from   w  ww.  ja  va2 s.com*/
public void setBucketAcl(SetBucketAclRequest request) {
    checkNotNull(request, "request should not be null.");

    InternalRequest internalRequest = this.createRequest(request, HttpMethodName.PUT);
    internalRequest.addParameter("acl", null);

    if (request.getCannedAcl() != null) {
        internalRequest.addHeader(Headers.BCE_ACL, request.getCannedAcl().toString());
        this.setZeroContentLength(internalRequest);
    } else if (request.getAccessControlList() != null) {
        byte[] json = null;
        List<Grant> grants = request.getAccessControlList();
        StringWriter writer = new StringWriter();
        try {
            JsonGenerator jsonGenerator = JsonUtils.jsonGeneratorOf(writer);
            jsonGenerator.writeStartObject();
            jsonGenerator.writeArrayFieldStart("accessControlList");
            for (Grant grant : grants) {
                jsonGenerator.writeStartObject();
                jsonGenerator.writeArrayFieldStart("grantee");
                for (Grantee grantee : grant.getGrantee()) {
                    jsonGenerator.writeStartObject();
                    jsonGenerator.writeStringField("id", grantee.getId());
                    jsonGenerator.writeEndObject();
                }
                jsonGenerator.writeEndArray();
                jsonGenerator.writeArrayFieldStart("permission");
                for (Permission permission : grant.getPermission()) {
                    jsonGenerator.writeString(permission.toString());
                }
                jsonGenerator.writeEndArray();
                jsonGenerator.writeEndObject();
            }
            jsonGenerator.writeEndArray();
            jsonGenerator.writeEndObject();
            jsonGenerator.close();
        } catch (IOException e) {
            throw new BceClientException("Fail to generate json", e);
        }
        try {
            json = writer.toString().getBytes(DEFAULT_ENCODING);
        } catch (UnsupportedEncodingException e) {
            throw new BceClientException("Fail to get UTF-8 bytes", e);
        }
        internalRequest.addHeader(Headers.CONTENT_LENGTH, String.valueOf(json.length));
        internalRequest.addHeader(Headers.CONTENT_TYPE, "application/json");
        internalRequest.setContent(RestartableInputStream.wrap(json));
    } else {
        checkNotNull(null, "request.acl should not be null.");
    }

    this.invokeHttpClient(internalRequest, BosResponse.class);
}