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

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

Introduction

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

Prototype

public final void writeArrayFieldStart(String fieldName) throws IOException, JsonGenerationException 

Source Link

Document

Convenience method for outputting a field entry ("member") (that will contain a JSON Array value), and the START_ARRAY marker.

Usage

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();//  w w  w. j  a va2s  . c  o m
        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:com.spotify.docker.client.DefaultDockerClient.java

@Override
public String execCreate(String containerId, String[] cmd, ExecParameter... params)
        throws DockerException, InterruptedException {
    WebTarget resource = resource().path("containers").path(containerId).path("exec");

    final StringWriter writer = new StringWriter();
    try {//from w  ww  .j a va  2  s . co m
        final JsonGenerator generator = objectMapper().getFactory().createGenerator(writer);
        generator.writeStartObject();

        for (ExecParameter param : params) {
            generator.writeBooleanField(param.getName(), true);
        }

        generator.writeArrayFieldStart("Cmd");
        for (String s : cmd) {
            generator.writeString(s);
        }
        generator.writeEndArray();

        generator.writeEndObject();
        generator.close();
    } catch (IOException e) {
        throw new DockerException(e);
    }

    String response;
    try {
        response = request(POST, String.class, resource, resource.request(APPLICATION_JSON_TYPE),
                Entity.json(writer.toString()));
    } catch (DockerRequestException e) {
        switch (e.status()) {
        case 404:
            throw new ContainerNotFoundException(containerId);
        default:
            throw e;
        }
    }

    try {
        JsonNode json = objectMapper().readTree(response);
        return json.findValue("Id").textValue();
    } catch (IOException e) {
        throw new DockerException(e);
    }
}

From source file:com.attribyte.essem.model.StoredGraph.java

/**
 * Generates JSON for this key./*from  w  ww.j a  va2s  .  c o  m*/
 * @param generator The generator.
 * @throws java.io.IOException on generation error.
 */
public void generateJSON(final JsonGenerator generator) throws IOException {
    generator.writeStartObject();
    generator.writeStringField("id", id);
    generator.writeStringField("uid", uid);
    generator.writeStringField("index", index);
    generator.writeStringField("application", key.application);
    generator.writeStringField("host", key.host);
    generator.writeStringField("instance", key.instance);
    generator.writeStringField("name", key.name);
    generator.writeStringField("field", key.field);
    generator.writeStringField("range", range);
    generator.writeNumberField("startTimestamp", startTimestamp);
    generator.writeNumberField("endTimestamp", endTimestamp);
    generator.writeStringField("downsampleFn", downsampleFn);
    if (rateUnit != null)
        generator.writeStringField("rateUnit", rateUnit);
    generator.writeStringField("title", title);
    generator.writeStringField("description", description);
    generator.writeStringField("xLabel", xLabel);
    generator.writeStringField("yLabel", yLabel);

    generator.writeArrayFieldStart("tag");
    for (String tag : tags) {
        generator.writeString(tag);
    }
    generator.writeEndArray();

    generator.writeStringField("created", DateTime.standardFormat(this.createTime));
    generator.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.  ja  v a  2  s.  c  o m*/
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: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  w  w .  ja  va2s .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);
}

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 {// w  ww.ja v  a  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.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());
        }//from  w ww  . j  a v  a 2  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(//  w  ww . j  av a  2s . c  om
                        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:org.apache.olingo.commons.core.data.JSONEntrySerializer.java

@Override
protected void doSerialize(final JSONEntryImpl entry, final JsonGenerator jgen,
        final SerializerProvider provider) throws IOException, JsonProcessingException {

    jgen.writeStartObject();//from www . j a v a2 s .  c  o  m

    if (entry.getMetadata() != null) {
        jgen.writeStringField(Constants.JSON_METADATA, entry.getMetadata().toASCIIString());
    }
    if (entry.getId() != null) {
        jgen.writeStringField(Constants.JSON_ID, entry.getId());
    }

    final Map<String, List<String>> entitySetLinks = new HashMap<String, List<String>>();

    for (Link link : entry.getNavigationLinks()) {
        ODataLinkType type = null;
        try {
            type = ODataLinkType.fromString(version, link.getRel(), link.getType());
        } catch (IllegalArgumentException e) {
            // ignore   
        }

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

        if (link.getInlineEntry() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineEntry());
        } else if (link.getInlineFeed() != null) {
            jgen.writeArrayFieldStart(link.getTitle());
            for (Entry subEntry : link.getInlineFeed().getEntries()) {
                jgen.writeObject(subEntry);
            }
            jgen.writeEndArray();
        }
    }
    for (Map.Entry<String, List<String>> entitySetLink : entitySetLinks.entrySet()) {
        jgen.writeArrayFieldStart(entitySetLink.getKey() + Constants.JSON_BIND_LINK_SUFFIX);
        for (String uri : entitySetLink.getValue()) {
            jgen.writeString(uri);
        }
        jgen.writeEndArray();
    }

    for (Link link : entry.getMediaEditLinks()) {
        if (link.getTitle() == null) {
            jgen.writeStringField(Constants.JSON_MEDIAEDIT_LINK, link.getHref());
        }

        if (link.getInlineEntry() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineEntry());
        }
        if (link.getInlineFeed() != null) {
            jgen.writeArrayFieldStart(link.getTitle());
            for (Entry subEntry : link.getInlineFeed().getEntries()) {
                jgen.writeObject(subEntry);
            }
            jgen.writeEndArray();
        }
    }

    for (Property property : entry.getProperties()) {
        property(jgen, property, property.getName());
    }

    jgen.writeEndObject();
}