List of usage examples for com.fasterxml.jackson.core JsonGenerator writeArrayFieldStart
public final void writeArrayFieldStart(String fieldName) throws IOException, JsonGenerationException
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(); }