List of usage examples for com.fasterxml.jackson.core JsonGenerator writeNumberField
public final void writeNumberField(String fieldName, BigDecimal value) throws IOException, JsonGenerationException
From source file:net.opentsdb.tree.Tree.java
/** * Converts the object to a JSON byte array, necessary for CAS calls and to * keep redundant data down//from w ww .j a va 2s. c o m * @return A byte array with the serialized tree */ private byte[] toStorageJson() { // TODO - precalc how much memory to grab final ByteArrayOutputStream output = new ByteArrayOutputStream(); try { final JsonGenerator json = JSON.getFactory().createGenerator(output); json.writeStartObject(); // we only need to write a small amount of information //json.writeNumberField("treeId", tree_id); json.writeStringField("name", name); json.writeStringField("description", description); json.writeStringField("notes", notes); json.writeBooleanField("strictMatch", strict_match); json.writeNumberField("created", created); json.writeBooleanField("enabled", enabled); json.writeBooleanField("storeFailures", store_failures); json.writeEndObject(); json.close(); // TODO zero copy? return output.toByteArray(); } catch (IOException e) { throw new RuntimeException(e); } }
From source file:com.google.openrtb.json.OpenRtbJsonWriter.java
protected void writeBidResponseFields(BidResponse resp, JsonGenerator gen) throws IOException { gen.writeStringField("id", resp.getId()); if (resp.getSeatbidCount() != 0) { gen.writeArrayFieldStart("seatbid"); for (SeatBid seatbid : resp.getSeatbidList()) { writeSeatBid(seatbid, gen);//ww w. j av a2 s . c o m } gen.writeEndArray(); } if (resp.hasBidid()) { gen.writeStringField("bidid", resp.getBidid()); } if (resp.hasCur()) { gen.writeStringField("cur", resp.getCur()); } if (resp.hasCustomdata()) { gen.writeStringField("customdata", resp.getCustomdata()); } if (resp.hasNbr()) { gen.writeNumberField("nbr", resp.getNbr().getNumber()); } }
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. */// w w w .j av a 2s. 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:com.google.openrtb.json.OpenRtbJsonWriter.java
protected void writeDeviceFields(Device device, JsonGenerator gen) throws IOException { if (device.hasUa()) { gen.writeStringField("ua", device.getUa()); }/* w w w . j a v a 2s. c o m*/ if (device.hasGeo()) { gen.writeFieldName("geo"); writeGeo(device.getGeo(), gen); } if (device.hasDnt()) { writeIntBoolField("dnt", device.getDnt(), gen); } if (device.hasLmt()) { writeIntBoolField("lmt", device.getLmt(), gen); } if (device.hasIp()) { gen.writeStringField("ip", device.getIp()); } if (device.hasIpv6()) { gen.writeStringField("ipv6", device.getIpv6()); } if (device.hasDevicetype()) { gen.writeNumberField("devicetype", device.getDevicetype().getNumber()); } if (device.hasMake()) { gen.writeStringField("make", device.getMake()); } if (device.hasModel()) { gen.writeStringField("model", device.getModel()); } if (device.hasOs()) { gen.writeStringField("os", device.getOs()); } if (device.hasOsv()) { gen.writeStringField("osv", device.getOsv()); } if (device.hasHwv()) { gen.writeStringField("hwv", device.getHwv()); } if (device.hasW()) { gen.writeNumberField("w", device.getW()); } if (device.hasH()) { gen.writeNumberField("h", device.getH()); } if (device.hasPpi()) { gen.writeNumberField("ppi", device.getPpi()); } if (device.hasPxratio()) { gen.writeNumberField("pxratio", device.getPxratio()); } if (device.hasJs()) { writeIntBoolField("js", device.getJs(), gen); } if (device.hasFlashver()) { gen.writeStringField("flashver", device.getFlashver()); } if (device.hasLanguage()) { gen.writeStringField("language", device.getLanguage()); } if (device.hasCarrier()) { gen.writeStringField("carrier", device.getCarrier()); } if (device.hasConnectiontype()) { gen.writeNumberField("connectiontype", device.getConnectiontype().getNumber()); } if (device.hasIfa()) { gen.writeStringField("ifa", device.getIfa()); } if (device.hasDidsha1()) { gen.writeStringField("didsha1", device.getDidsha1()); } if (device.hasDidmd5()) { gen.writeStringField("didmd5", device.getDidmd5()); } if (device.hasDpidsha1()) { gen.writeStringField("dpidsha1", device.getDpidsha1()); } if (device.hasDpidmd5()) { gen.writeStringField("dpidmd5", device.getDpidmd5()); } if (device.hasMacsha1()) { gen.writeStringField("macsha1", device.getMacsha1()); } if (device.hasMacmd5()) { gen.writeStringField("macmd5", device.getMacmd5()); } if (device.hasGeofetch()) { writeIntBoolField("geofetch", device.getGeofetch(), gen); } }
From source file:net.solarnetwork.web.support.JSONView.java
private void writeJsonValue(JsonGenerator json, String key, Object val, PropertyEditorRegistrar registrar) throws JsonGenerationException, IOException { if (val instanceof Collection<?> || (val != null && val.getClass().isArray())) { Collection<?> col;//from ww w . j a va 2s .com if (val instanceof Collection<?>) { col = (Collection<?>) val; } else if (!val.getClass().getComponentType().isPrimitive()) { col = Arrays.asList((Object[]) val); } else { // damn you, primitives col = getPrimitiveCollection(val); } if (key != null) { json.writeFieldName(key); } json.writeStartArray(); for (Object colObj : col) { writeJsonValue(json, null, colObj, registrar); } json.writeEndArray(); } else if (val instanceof Map<?, ?>) { if (key != null) { json.writeFieldName(key); } json.writeStartObject(); for (Map.Entry<?, ?> me : ((Map<?, ?>) val).entrySet()) { Object propName = me.getKey(); if (propName == null) { continue; } writeJsonValue(json, propName.toString(), me.getValue(), registrar); } json.writeEndObject(); } else if (val instanceof Double) { if (key == null) { json.writeNumber((Double) val); } else { json.writeNumberField(key, (Double) val); } } else if (val instanceof Integer) { if (key == null) { json.writeNumber((Integer) val); } else { json.writeNumberField(key, (Integer) val); } } else if (val instanceof Short) { if (key == null) { json.writeNumber(((Short) val).intValue()); } else { json.writeNumberField(key, ((Short) val).intValue()); } } else if (val instanceof Float) { if (key == null) { json.writeNumber((Float) val); } else { json.writeNumberField(key, (Float) val); } } else if (val instanceof Long) { if (key == null) { json.writeNumber((Long) val); } else { json.writeNumberField(key, (Long) val); } } else if (val instanceof Boolean) { if (key == null) { json.writeBoolean((Boolean) val); } else { json.writeBooleanField(key, (Boolean) val); } } else if (val instanceof String) { if (key == null) { json.writeString((String) val); } else { json.writeStringField(key, (String) val); } } else { // create a JSON object from bean properties if (getPropertySerializerRegistrar() != null && val != null) { // try whole-bean serialization first Object o = getPropertySerializerRegistrar().serializeProperty(key, val.getClass(), val, val); if (o != val) { if (o != null) { writeJsonValue(json, key, o, registrar); } return; } } generateJavaBeanObject(json, key, val, registrar); } }
From source file:org.commonjava.maven.atlas.graph.jackson.ProjectRelationshipSerializer.java
@SuppressWarnings("incomplete-switch") @Override//from w w w .jav a 2 s. c o m public void serialize(final T value, final JsonGenerator gen, final SerializerProvider provider) throws IOException, JsonGenerationException { gen.writeStartObject(); gen.writeStringField(RELATIONSHIP_TYPE, value.getType().name()); gen.writeStringField(POM_LOCATION_URI, value.getPomLocation().toString()); gen.writeBooleanField(INHERITED, value.isInherited()); Set<URI> sources = value.getSources(); if (sources != null) { for (Iterator<URI> iter = sources.iterator(); iter.hasNext();) { if (iter.next() == null) { iter.remove(); } } if (!sources.isEmpty()) { gen.writeArrayFieldStart(SOURCE_URIS); for (URI uri : sources) { if (uri == null) { continue; } gen.writeString(uri.toString()); } gen.writeEndArray(); } } provider.defaultSerializeField(DECLARING_REF, value.getDeclaring(), gen); provider.defaultSerializeField(TARGET_REF, value.getTarget(), gen); switch (value.getType()) { case BOM: gen.writeBooleanField(MIXIN, value.isMixin()); break; case DEPENDENCY: { gen.writeStringField(SCOPE, ((DependencyRelationship) value).getScope().realName()); gen.writeBooleanField(MANAGED, value.isManaged()); gen.writeBooleanField(OPTIONAL, ((DependencyRelationship) value).isOptional()); break; } case PLUGIN_DEP: { provider.defaultSerializeField(PLUGIN_REF, ((PluginDependencyRelationship) value).getPlugin(), gen); gen.writeBooleanField(MANAGED, value.isManaged()); break; } case PLUGIN: { gen.writeBooleanField(MANAGED, value.isManaged()); gen.writeBooleanField(REPORTING, ((PluginRelationship) value).isReporting()); break; } } gen.writeNumberField(INDEX, value.getIndex()); gen.writeEndObject(); }
From source file:de.escalon.hypermedia.spring.hydra.PagedResourcesSerializer.java
@Override public void serialize(PagedResources pagedResources, JsonGenerator jgen, SerializerProvider serializerProvider) throws IOException { final SerializationConfig config = serializerProvider.getConfig(); JavaType javaType = config.constructType(pagedResources.getClass()); JsonSerializer<Object> serializer = BeanSerializerFactory.instance.createSerializer(serializerProvider, javaType);//from w w w .ja v a 2 s. com // replicate pretty much everything from JacksonHydraSerializer // since we must reorganize the internals of pagedResources to get a hydra collection // with partial page view, we have to serialize pagedResources with an // unwrapping serializer Deque<LdContext> contextStack = (Deque<LdContext>) serializerProvider.getAttribute(KEY_LD_CONTEXT); if (contextStack == null) { contextStack = new ArrayDeque<LdContext>(); serializerProvider.setAttribute(KEY_LD_CONTEXT, contextStack); } // TODO: filter next/previous/first/last from link list - maybe create new PagedResources without them? List<Link> links = pagedResources.getLinks(); List<Link> filteredLinks = new ArrayList<Link>(); for (Link link : links) { String rel = link.getRel(); if (navigationRels.contains(rel)) { continue; } else { filteredLinks.add(link); } } PagedResources toRender = new PagedResources(pagedResources.getContent(), pagedResources.getMetadata(), filteredLinks); jgen.writeStartObject(); serializeContext(toRender, jgen, serializerProvider, contextStack); jgen.writeStringField(JsonLdKeywords.AT_TYPE, "hydra:Collection"); // serialize with PagedResourcesMixin serializer.unwrappingSerializer(NameTransformer.NOP).serialize(toRender, jgen, serializerProvider); PagedResources.PageMetadata metadata = pagedResources.getMetadata(); jgen.writeNumberField("hydra:totalItems", metadata.getTotalElements()); // begin hydra:view jgen.writeObjectFieldStart("hydra:view"); jgen.writeStringField(JsonLdKeywords.AT_TYPE, "hydra:PartialCollectionView"); writeRelLink(pagedResources, jgen, Link.REL_NEXT); writeRelLink(pagedResources, jgen, "previous"); // must also translate prev to its synonym previous writeRelLink(pagedResources, jgen, Link.REL_PREVIOUS, "previous"); writeRelLink(pagedResources, jgen, Link.REL_FIRST); writeRelLink(pagedResources, jgen, Link.REL_LAST); jgen.writeEndObject(); // end hydra:view jgen.writeEndObject(); contextStack = (Deque<LdContext>) serializerProvider.getAttribute(KEY_LD_CONTEXT); if (!contextStack.isEmpty()) { contextStack.pop(); } }
From source file:com.google.openrtb.json.OpenRtbJsonWriter.java
protected void writeBidRequestFields(BidRequest req, JsonGenerator gen) throws IOException { gen.writeStringField("id", req.getId()); if (checkRequired(req.getImpCount())) { gen.writeArrayFieldStart("imp"); for (Imp imp : req.getImpList()) { writeImp(imp, gen);//from www .ja va 2 s . c o m } gen.writeEndArray(); } switch (req.getDistributionchannelOneofCase()) { case SITE: gen.writeFieldName("site"); writeSite(req.getSite(), gen); break; case APP: gen.writeFieldName("app"); writeApp(req.getApp(), gen); break; case DISTRIBUTIONCHANNELONEOF_NOT_SET: checkRequired(false); } if (req.hasDevice()) { gen.writeFieldName("device"); writeDevice(req.getDevice(), gen); } if (req.hasUser()) { gen.writeFieldName("user"); writeUser(req.getUser(), gen); } if (req.hasTest()) { writeIntBoolField("test", req.getTest(), gen); } if (req.hasAt()) { gen.writeNumberField("at", req.getAt().getNumber()); } if (req.hasTmax()) { gen.writeNumberField("tmax", req.getTmax()); } writeStrings("wseat", req.getWseatList(), gen); if (req.hasAllimps()) { writeIntBoolField("allimps", req.getAllimps(), gen); } writeStrings("cur", req.getCurList(), gen); writeContentCategories("bcat", req.getBcatList(), gen); writeStrings("badv", req.getBadvList(), gen); if (req.hasRegs()) { gen.writeFieldName("regs"); writeRegs(req.getRegs(), gen); } writeStrings("bapp", req.getBappList(), gen); }
From source file:com.google.openrtb.json.OpenRtbJsonWriter.java
protected void writeImpFields(Imp imp, JsonGenerator gen) throws IOException { gen.writeStringField("id", imp.getId()); if (imp.hasBanner()) { gen.writeFieldName("banner"); writeBanner(imp.getBanner(), gen); }/* w ww . j a v a2s . co m*/ if (imp.hasVideo()) { gen.writeFieldName("video"); writeVideo(imp.getVideo(), gen); } if (imp.hasAudio()) { gen.writeFieldName("audio"); writeAudio(imp.getAudio(), gen); } if (imp.hasNative()) { gen.writeFieldName("native"); writeNative(imp.getNative(), gen); } if (imp.hasDisplaymanager()) { gen.writeStringField("displaymanager", imp.getDisplaymanager()); } if (imp.hasDisplaymanagerver()) { gen.writeStringField("displaymanagerver", imp.getDisplaymanagerver()); } if (imp.hasInstl()) { writeIntBoolField("instl", imp.getInstl(), gen); } if (imp.hasTagid()) { gen.writeStringField("tagid", imp.getTagid()); } if (imp.hasBidfloor()) { gen.writeNumberField("bidfloor", imp.getBidfloor()); } if (imp.hasBidfloorcur()) { gen.writeStringField("bidfloorcur", imp.getBidfloorcur()); } if (imp.hasSecure()) { writeIntBoolField("secure", imp.getSecure(), gen); } writeStrings("iframebuster", imp.getIframebusterList(), gen); if (imp.hasPmp()) { gen.writeFieldName("pmp"); writePmp(imp.getPmp(), gen); } if (imp.hasClickbrowser()) { gen.writeBooleanField("clickbrowser", imp.getClickbrowser()); } if (imp.hasExp()) { gen.writeNumberField("exp", imp.getExp()); } }
From source file:org.pentaho.pdi.engine.serializers.DataEventSerializer.java
public DataEventSerializer() { super(DataEvent.class); SimpleModule module = new SimpleModule(); module.addSerializer(DataEvent.class, new JsonSerializer<DataEvent>() { @Override/*w w w. j av a2 s . c om*/ public void serialize(DataEvent dataEvent, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { jsonGenerator.writeStartObject(); Rows rows = (Rows) dataEvent.getData(); jsonGenerator.writeStringField("model-id", dataEvent.getSource().getId()); jsonGenerator.writeStringField("type", rows.getType().toString()); jsonGenerator.writeStringField("state", rows.getState().toString()); jsonGenerator.writeArrayFieldStart("rows"); for (Row row : rows) { jsonGenerator.writeStartObject(); jsonGenerator.writeArrayFieldStart("names"); for (String name : row.getColumnNames()) { jsonGenerator.writeString(name); } jsonGenerator.writeEndArray(); jsonGenerator.writeArrayFieldStart("objects"); for (Object obj : row.getObjects().get()) { jsonGenerator.writeStartObject(); if (obj == null) { jsonGenerator.writeStringField("type", "Null"); jsonGenerator.writeEndObject(); continue; } switch (obj.getClass().getSimpleName()) { case "String": jsonGenerator.writeStringField("type", "String"); jsonGenerator.writeStringField("obj", obj.toString()); break; case "Date": jsonGenerator.writeStringField("type", "Date"); jsonGenerator.writeStringField("obj", DATE_TIME_INSTANCE.format((Date) obj)); break; case "Integer": jsonGenerator.writeStringField("type", "Integer"); jsonGenerator.writeNumberField("obj", (Integer) obj); break; case "Long": jsonGenerator.writeStringField("type", "Long"); jsonGenerator.writeNumberField("obj", (Long) obj); break; case "Double": jsonGenerator.writeStringField("type", "Double"); jsonGenerator.writeNumberField("obj", (Double) obj); break; case "BigDecimal": jsonGenerator.writeStringField("type", "BigDecimal"); jsonGenerator.writeStringField("obj", obj.toString()); break; case "Boolean": jsonGenerator.writeStringField("type", "Boolean"); jsonGenerator.writeBooleanField("obj", (Boolean) obj); break; case "byte[]": jsonGenerator.writeStringField("type", "byte[]"); jsonGenerator.writeStringField("obj", new String(((byte[]) obj), "UTF-8")); break; default: if (obj instanceof Serializable) { jsonGenerator.writeStringField("type", "Object"); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream); objectOutputStream.writeObject(obj); objectOutputStream.close(); outputStream.close(); byte[] bytes = outputStream.toByteArray(); jsonGenerator.writeStringField("obj", Base64.encodeBase64String(bytes)); } } jsonGenerator.writeEndObject(); } jsonGenerator.writeEndArray(); jsonGenerator.writeEndObject(); } jsonGenerator.writeEndArray(); jsonGenerator.writeEndObject(); } }); module.addDeserializer(DataEvent.class, new StdNodeBasedDeserializer<DataEvent>(DataEvent.class) { @Override public DataEvent convert(JsonNode jsonNode, DeserializationContext deserializationContext) throws IOException { Rows.TYPE type = Rows.TYPE.valueOf(jsonNode.get("type").asText()); Rows.STATE state = Rows.STATE.valueOf(jsonNode.get("state").asText()); List<Row> rows = new ArrayList<>(); JsonNode json_rows = jsonNode.get("rows"); for (JsonNode row : json_rows) { List<Class> types = new ArrayList<>(); List<String> names = new ArrayList<>(); for (JsonNode name : row.get("names")) { names.add(name.asText()); } List<Object> objects = new ArrayList<>(); for (JsonNode obj : row.get("objects")) { JsonNode t = obj.get("type"); JsonNode rawObject = obj.get("obj"); Object object = null; String objType = t.asText(); switch (objType) { case "Null": types.add(Void.class); break; case "String": types.add(String.class); object = rawObject.asText(); break; case "Integer": types.add(Integer.class); object = rawObject.asInt(); break; case "Long": types.add(Long.class); object = rawObject.asLong(); break; case "Date": types.add(Date.class); try { object = DATE_TIME_INSTANCE.parse(rawObject.asText()); } catch (ParseException e) { e.printStackTrace(); } break; case "Double": types.add(Double.class); object = rawObject.asDouble(); break; case "BigDecimal": types.add(BigDecimal.class); object = new BigDecimal(rawObject.asText()); break; case "Boolean": types.add(Boolean.class); object = rawObject.asBoolean(); break; case "byte[]": types.add(byte[].class); object = rawObject.asText().getBytes("UTF-8"); break; case "Object": try { types.add(Object.class); object = new ObjectInputStream( new ByteArrayInputStream(Base64.decodeBase64(rawObject.asText()))) .readObject(); } catch (ClassNotFoundException e) { e.printStackTrace(); } break; } objects.add(object); } Row r = new DeserializedRow(names, types, objects); rows.add(r); } Rows rowsObj = new Rows(rows, type, state); return new DataEvent(new RemoteSource(jsonNode.get("model-id").asText()), rowsObj); } }); mapper.registerModule(module); }