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:com.msopentech.odatajclient.engine.data.json.DOMTreeUtilsV4.java

public static void writeSubtree(final ODataClient client, final JsonGenerator jgen, final Node content,
        final boolean propType) throws IOException {
    for (Node child : XMLUtils.getChildNodes(content, Node.ELEMENT_NODE)) {
        final String childName = XMLUtils.getSimpleName(child);

        final Node typeAttr = child.getAttributes().getNamedItem(ODataConstants.ATTR_M_TYPE);
        if (typeAttr != null && EdmSimpleType.isGeospatial(typeAttr.getTextContent())) {
            jgen.writeStringField(//w w w .  java  2 s. c  om
                    propType ? ODataConstants.JSON_TYPE : childName + "@" + ODataConstants.JSON_TYPE,
                    typeAttr.getTextContent());

            jgen.writeObjectFieldStart(childName);
            GeospatialJSONHandler.serialize(jgen, (Element) child, typeAttr.getTextContent());
            jgen.writeEndObject();
        } else if (XMLUtils.hasOnlyTextChildNodes(child)) {
            if (child.hasChildNodes()) {
                final String out;
                if (typeAttr == null) {
                    out = child.getChildNodes().item(0).getNodeValue();
                } else {
                    if (typeAttr.getTextContent().startsWith("Edm.")) {
                        final EdmSimpleType type = EdmSimpleType.fromValue(typeAttr.getTextContent());
                        final ODataPrimitiveValue value = client.getPrimitiveValueBuilder().setType(type)
                                .setText(child.getChildNodes().item(0).getNodeValue()).build();
                        out = value.toString();

                        jgen.writeStringField(childName + "@" + ODataConstants.JSON_TYPE, type.toString());
                    } else {
                        // enum
                        out = child.getTextContent();
                        jgen.writeStringField(childName + "@" + ODataConstants.JSON_TYPE,
                                typeAttr.getTextContent());
                    }
                }
                jgen.writeStringField(childName, out);
            } else {
                if (child.getAttributes().getNamedItem(ODataConstants.ATTR_NULL) == null) {
                    if (typeAttr != null && EdmSimpleType.String.toString().equals(typeAttr.getTextContent())) {
                        jgen.writeStringField(childName + "@" + ODataConstants.JSON_TYPE,
                                typeAttr.getTextContent());
                        jgen.writeStringField(childName, StringUtils.EMPTY);
                    } else {
                        jgen.writeArrayFieldStart(childName);
                        jgen.writeEndArray();
                    }
                } else {
                    jgen.writeNullField(childName);
                }
            }
        } else {
            if (XMLUtils.hasElementsChildNode(child)) {
                jgen.writeArrayFieldStart(childName);

                for (Node nephew : XMLUtils.getChildNodes(child, Node.ELEMENT_NODE)) {
                    if (XMLUtils.hasOnlyTextChildNodes(nephew)) {
                        jgen.writeString(nephew.getChildNodes().item(0).getNodeValue());
                    } else {
                        jgen.writeStartObject();
                        DOMTreeUtils.writeSubtree(client, jgen, nephew);
                        jgen.writeEndObject();
                    }
                }

                jgen.writeEndArray();
            } else {
                jgen.writeObjectFieldStart(childName);
                if (typeAttr != null) {
                    jgen.writeStringField("@" + ODataConstants.JSON_TYPE, typeAttr.getTextContent());
                }

                DOMTreeUtils.writeSubtree(client, jgen, child);

                jgen.writeEndObject();
            }
        }
    }
}

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();//from   w ww .j  ava2s  . co m

    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:com.boundary.zoocreeper.Backup.java

private void dumpNode(JsonGenerator jgen, String path, Stat stat, List<ACL> acls, byte[] data)
        throws IOException {
    jgen.writeObjectFieldStart(path);//  w w w . ja v  a2s. c om

    // The number of changes to the ACL of this znode.
    jgen.writeNumberField(FIELD_AVERSION, stat.getAversion());

    // The time in milliseconds from epoch when this znode was created.
    jgen.writeNumberField(FIELD_CTIME, stat.getCtime());

    // The number of changes to the children of this znode.
    jgen.writeNumberField(FIELD_CVERSION, stat.getCversion());

    // The zxid of the change that caused this znode to be created.
    jgen.writeNumberField(FIELD_CZXID, stat.getCzxid());

    // The length of the data field of this znode.
    // jgen.writeNumberField("dataLength", stat.getDataLength());

    // The session id of the owner of this znode if the znode is an ephemeral node. If it is not an ephemeral node,
    // it will be zero.
    jgen.writeNumberField(FIELD_EPHEMERAL_OWNER, stat.getEphemeralOwner());

    // The time in milliseconds from epoch when this znode was last modified.
    jgen.writeNumberField(FIELD_MTIME, stat.getMtime());

    // The zxid of the change that last modified this znode.
    jgen.writeNumberField(FIELD_MZXID, stat.getMzxid());

    // The number of children of this znode.
    jgen.writeNumberField("numChildren", stat.getNumChildren());

    // last modified children?
    jgen.writeNumberField(FIELD_PZXID, stat.getPzxid());

    // The number of changes to the data of this znode.
    jgen.writeNumberField(FIELD_VERSION, stat.getVersion());

    if (data != null) {
        jgen.writeBinaryField(FIELD_DATA, data);
    } else {
        jgen.writeNullField(FIELD_DATA);
    }

    jgen.writeArrayFieldStart(FIELD_ACLS);
    for (ACL acl : acls) {
        jgen.writeStartObject();
        jgen.writeStringField(FIELD_ACL_ID, acl.getId().getId());
        jgen.writeStringField(FIELD_ACL_SCHEME, acl.getId().getScheme());
        jgen.writeNumberField(FIELD_ACL_PERMS, acl.getPerms());
        jgen.writeEndObject();
    }
    jgen.writeEndArray();

    jgen.writeEndObject();
}

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());
    }//w w  w.  jav a2s.c o  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:org.apache.olingo.commons.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(/*from  w  w  w  .  j  av  a 2s.co m*/
                        link.getTitle() + StringUtils.prependIfMissing(
                                version.getJsonName(ODataServiceVersion.JsonKey.MEDIA_EDIT_LINK), "@"),
                        link.getHref());
            }
        }
    }

    for (Link link : linked.getAssociationLinks()) {
        if (StringUtils.isNotBlank(link.getHref())) {
            jgen.writeStringField(
                    link.getTitle() + version.getJsonName(ODataServiceVersion.JsonKey.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() + version.getJsonName(ODataServiceVersion.JsonKey.NAVIGATION_LINK),
                    link.getHref());
        }

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

From source file:org.apache.olingo.commons.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  . ja  va2s  .  c o m*/

        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);
            }
            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(version, serverMode).doSerialize(link.getInlineEntity(), jgen);
        } else if (link.getInlineEntitySet() != null) {
            jgen.writeArrayFieldStart(link.getTitle());
            final JsonEntitySerializer entitySerializer = new JsonEntitySerializer(version, serverMode);
            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:de.escalon.hypermedia.spring.hydra.LinkListSerializer.java

private void writeActionDescriptors(JsonGenerator jgen, String currentVocab,
        List<ActionDescriptor> actionDescriptors) throws IOException, IntrospectionException {
    for (ActionDescriptor actionDescriptor : actionDescriptors) {
        if ("GET".equals(actionDescriptor.getHttpMethod())) {
            continue;
        }//w w  w.  j  ava2  s .c o  m

        jgen.writeStartObject(); // begin a hydra:Operation

        final String semanticActionType = actionDescriptor.getSemanticActionType();
        if (semanticActionType != null) {
            jgen.writeStringField("@type", semanticActionType);
        }
        jgen.writeStringField("hydra:method", actionDescriptor.getHttpMethod());

        final ActionInputParameter requestBodyInputParameter = actionDescriptor.getRequestBody();
        if (requestBodyInputParameter != null) {

            jgen.writeObjectFieldStart("hydra:expects"); // begin hydra:expects

            final Class<?> clazz = requestBodyInputParameter.getParameterType();
            final Expose classExpose = clazz.getAnnotation(Expose.class);
            final String typeName;
            if (classExpose != null) {
                typeName = classExpose.value();
            } else {
                typeName = requestBodyInputParameter.getParameterType().getSimpleName();
            }
            jgen.writeStringField("@type", typeName);

            jgen.writeArrayFieldStart("hydra:supportedProperty"); // begin hydra:supportedProperty
            // TODO check need for allRootParameters and requestBodyInputParameter here:
            recurseSupportedProperties(jgen, currentVocab, clazz, actionDescriptor, requestBodyInputParameter,
                    requestBodyInputParameter.getValue(), "");
            jgen.writeEndArray(); // end hydra:supportedProperty

            jgen.writeEndObject(); // end hydra:expects
        }

        jgen.writeEndObject(); // end hydra:Operation
    }
}

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

@SuppressWarnings("deprecation")
protected void writeBannerFields(Banner banner, JsonGenerator gen) throws IOException {
    if (banner.hasW()) {
        gen.writeNumberField("w", banner.getW());
    }/*  w w w  .ja v  a  2  s  .com*/
    if (banner.hasH()) {
        gen.writeNumberField("h", banner.getH());
    }
    if (banner.hasWmax()) {
        gen.writeNumberField("wmax", banner.getWmax());
    }
    if (banner.hasHmax()) {
        gen.writeNumberField("hmax", banner.getHmax());
    }
    if (banner.hasWmin()) {
        gen.writeNumberField("wmin", banner.getWmin());
    }
    if (banner.hasHmin()) {
        gen.writeNumberField("hmin", banner.getHmin());
    }
    if (banner.hasId()) {
        gen.writeStringField("id", banner.getId());
    }
    writeEnums("btype", banner.getBtypeList(), gen);
    writeEnums("battr", banner.getBattrList(), gen);
    if (banner.hasPos()) {
        gen.writeNumberField("pos", banner.getPos().getNumber());
    }
    writeStrings("mimes", banner.getMimesList(), gen);
    if (banner.hasTopframe()) {
        writeIntBoolField("topframe", banner.getTopframe(), gen);
    }
    writeEnums("expdir", banner.getExpdirList(), gen);
    writeEnums("api", banner.getApiList(), gen);
    if (checkRequired(banner.getFormatCount())) {
        gen.writeArrayFieldStart("format");
        for (Format format : banner.getFormatList()) {
            writeFormat(format, gen);
        }
        gen.writeEndArray();
    }
}

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

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

    final Entity entity = container.getPayload();

    jgen.writeStartObject();/*w  ww .java2 s. c  o m*/

    if (serverMode) {
        if (container.getContextURL() != null) {
            jgen.writeStringField(Constants.JSON_CONTEXT, container.getContextURL().toASCIIString());
        }
        if (StringUtils.isNotBlank(container.getMetadataETag())) {
            jgen.writeStringField(Constants.JSON_METADATA_ETAG, container.getMetadataETag());
        }

        if (StringUtils.isNotBlank(entity.getETag())) {
            jgen.writeStringField(Constants.JSON_ETAG, entity.getETag());
        }
    }

    if (StringUtils.isNotBlank(entity.getType()) && !isODataMetadataNone(contentType)) {
        jgen.writeStringField(Constants.JSON_TYPE,
                new EdmTypeInfo.Builder().setTypeExpression(entity.getType()).build().external());
    }

    if (entity.getId() != null && !isODataMetadataNone(contentType)) {
        jgen.writeStringField(Constants.JSON_ID, entity.getId().toASCIIString());
    }

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

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

    if (serverMode && entity.getEditLink() != null && StringUtils.isNotBlank(entity.getEditLink().getHref())) {
        jgen.writeStringField(Constants.JSON_EDIT_LINK, entity.getEditLink().getHref());

        if (entity.isMediaEntity()) {
            jgen.writeStringField(Constants.JSON_MEDIA_READ_LINK, entity.getEditLink().getHref() + "/$value");
        }
    }

    if (!isODataMetadataNone(contentType)) {
        links(entity, jgen);
    }

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

        if (link.getInlineEntity() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineEntity());
        }
        if (link.getInlineEntitySet() != null) {
            jgen.writeArrayFieldStart(link.getTitle());
            for (Entity subEntry : link.getInlineEntitySet().getEntities()) {
                jgen.writeObject(subEntry);
            }
            jgen.writeEndArray();
        }
    }

    if (serverMode) {
        for (Operation operation : entity.getOperations()) {
            jgen.writeObjectFieldStart(
                    "#" + StringUtils.substringAfterLast(operation.getMetadataAnchor(), "#"));
            jgen.writeStringField(Constants.ATTR_TITLE, operation.getTitle());
            jgen.writeStringField(Constants.ATTR_TARGET, operation.getTarget().toASCIIString());
            jgen.writeEndObject();
        }
    }

    jgen.writeEndObject();
}