List of usage examples for com.fasterxml.jackson.core JsonGenerator writeObjectFieldStart
public final void writeObjectFieldStart(String fieldName) throws IOException, JsonGenerationException
From source file:com.arpnetworking.logback.serialization.BaseSerializationStrategy.java
/** * This function assumes the field object has already been started for this throwable, this only fills in * the fields in the 'exception' or equivalent object and does not create the field in the containing object. * * @param throwableProxy Throwable to serialize * @param jsonGenerator <code>JsonGenerator</code> instance after exception object is started * @param objectMapper <code>ObjectMapper</code> instance. * @throws IOException If writing the <code>Throwable</code> as JSON fails. *//* w ww.java 2 s .com*/ protected void serializeThrowable(final IThrowableProxy throwableProxy, final JsonGenerator jsonGenerator, final ObjectMapper objectMapper) throws IOException { jsonGenerator.writeObjectField("type", throwableProxy.getClassName()); jsonGenerator.writeObjectField("message", throwableProxy.getMessage()); jsonGenerator.writeArrayFieldStart("backtrace"); for (StackTraceElementProxy ste : throwableProxy.getStackTraceElementProxyArray()) { jsonGenerator.writeString(ste.toString()); } jsonGenerator.writeEndArray(); jsonGenerator.writeObjectFieldStart("data"); if (throwableProxy.getSuppressed() != null) { jsonGenerator.writeArrayFieldStart("suppressed"); for (IThrowableProxy suppressed : throwableProxy.getSuppressed()) { jsonGenerator.writeStartObject(); serializeThrowable(suppressed, jsonGenerator, objectMapper); jsonGenerator.writeEndObject(); } jsonGenerator.writeEndArray(); } if (throwableProxy.getCause() != null) { jsonGenerator.writeObjectFieldStart("cause"); serializeThrowable(throwableProxy.getCause(), jsonGenerator, objectMapper); jsonGenerator.writeEndObject(); } jsonGenerator.writeEndObject(); }
From source file:org.n52.tamis.core.json.serialize.processes.execute.ExecuteInputSerializer.java
private void writeAsReference(JsonGenerator jsonGenerator, ExecuteInput input) throws IOException { /*/* ww w .j a v a 2s. c o m*/ * expected structure looks like: * * "Reference": { "_href": * "http://fluggs.wupperverband.de/sos2/service?service=SOS&request=GetObservation&version=2.0.0&offering=Zeitreihen_2m_Tiefe&observedProperty=Grundwasserstand&responseFormat=http%3A//www.opengis.net/om/2.0", * "_mimeType": "application/om+xml; version=2.0", "_schema": * "http://schemas.opengis.net/om/2.0/observation.xsd" }, "_id": * "gw1" } * */ logger.info("Input \"{}\" is serialized as WPS \"Reference\".", input); jsonGenerator.writeStartObject(); jsonGenerator.writeObjectFieldStart("Reference"); // jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("_href", input.getValue()); /* * parameters "_mimeType" and "_schema" can be set to SOS values, if * the link is a SOS request! * * Else we do not know anything about the mimeType. Thus we cannot * set it. */ jsonGenerator.writeEndObject(); jsonGenerator.writeStringField("_id", input.getId()); jsonGenerator.writeEndObject(); }
From source file:io.airlift.event.client.EventJsonSerializer.java
@Override public void serialize(T event, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException { jsonGenerator.writeStartObject();/*from w w w . j av a 2 s. c o m*/ jsonGenerator.writeStringField("type", eventTypeMetadata.getTypeName()); if (eventTypeMetadata.getUuidField() != null) { eventTypeMetadata.getUuidField().writeField(jsonGenerator, event); } else { jsonGenerator.writeStringField("uuid", UUID.randomUUID().toString()); } if (eventTypeMetadata.getHostField() != null) { eventTypeMetadata.getHostField().writeField(jsonGenerator, event); } else { jsonGenerator.writeStringField("host", hostName); } if (eventTypeMetadata.getTimestampField() != null) { eventTypeMetadata.getTimestampField().writeField(jsonGenerator, event); } else { jsonGenerator.writeFieldName("timestamp"); EventDataType.DATETIME.writeFieldValue(jsonGenerator, new DateTime()); } jsonGenerator.writeObjectFieldStart("data"); for (EventFieldMetadata field : eventTypeMetadata.getFields()) { field.writeField(jsonGenerator, event); } jsonGenerator.writeEndObject(); jsonGenerator.writeEndObject(); jsonGenerator.flush(); }
From source file:com.ntsync.shared.RawContact.java
private void writeStructuredName(JsonGenerator g) throws IOException { g.writeObjectFieldStart(ContactConstants.STRUCTUREDNAME); writeField(g, ContactConstants.DISPLAY_NAME, displayName); writeField(g, ContactConstants.FAMILY_NAME, lastName); writeField(g, ContactConstants.GIVEN_NAME, firstName); writeField(g, ContactConstants.MIDDLE_NAME, middleName); writeField(g, ContactConstants.PREFIX_NAME, prefixName); writeField(g, ContactConstants.SUFFIX_NAME, suffixName); writeField(g, ContactConstants.PHONETIC_FAMILY, phoneticFamilyName); writeField(g, ContactConstants.PHONETIC_GIVEN, phoneticGivenName); writeField(g, ContactConstants.PHONETIC_MIDDLE, phoneticMiddleName); g.writeEndObject();/*from w ww . j a v a 2s . com*/ }
From source file:org.codehaus.modello.plugin.jsonschema.JsonSchemaGenerator.java
private void generateJsonSchema(Properties parameters) throws IOException, ModelloException { Model objectModel = getModel();/* w w w.jav a 2 s .com*/ File directory = getOutputDirectory(); if (isPackageWithVersion()) { directory = new File(directory, getGeneratedVersion().toString()); } if (!directory.exists()) { directory.mkdirs(); } // we assume parameters not null String schemaFileName = parameters.getProperty(ModelloParameterConstants.OUTPUT_JSONSCHEMA_FILE_NAME); File schemaFile; if (schemaFileName != null) { schemaFile = new File(directory, schemaFileName); } else { schemaFile = new File(directory, objectModel.getId() + "-" + getGeneratedVersion() + ".schema.json"); } JsonGenerator generator = new JsonFactory().enable(Feature.AUTO_CLOSE_JSON_CONTENT) .enable(Feature.AUTO_CLOSE_TARGET).enable(Feature.ESCAPE_NON_ASCII) .enable(Feature.FLUSH_PASSED_TO_STREAM).enable(Feature.QUOTE_FIELD_NAMES) .enable(Feature.QUOTE_NON_NUMERIC_NUMBERS).disable(Feature.WRITE_NUMBERS_AS_STRINGS) .createGenerator(schemaFile, JsonEncoding.UTF8); generator.useDefaultPrettyPrinter(); ModelClass root = objectModel.getClass(objectModel.getRoot(getGeneratedVersion()), getGeneratedVersion()); try { generator.writeStartObject(); generator.writeStringField("$schema", "http://json-schema.org/draft-04/schema#"); writeClassDocumentation(generator, root, true); generator.writeObjectFieldStart("definitions"); for (ModelClass current : objectModel.getClasses(getGeneratedVersion())) { if (!root.equals(current)) { writeClassDocumentation(generator, current, false); } } // end "definitions" generator.writeEndObject(); // end main object generator.writeEndObject(); } finally { generator.close(); } }
From source file:net.opentsdb.meta.UIDMeta.java
/** * Formats the JSON output for writing to storage. It drops objects we don't * need or want to store (such as the UIDMeta objects or the total dps) to * save space. It also serializes in order so that we can make a proper CAS * call. Otherwise the POJO serializer may place the fields in any order * and CAS calls would fail all the time. * @return A byte array to write to storage *//*from w w w.j ava 2 s . c o m*/ private byte[] getStorageJSON() { // 256 bytes is a good starting value, assumes default info final ByteArrayOutputStream output = new ByteArrayOutputStream(256); try { final JsonGenerator json = JSON.getFactory().createGenerator(output); json.writeStartObject(); json.writeStringField("type", type.toString()); json.writeStringField("displayName", display_name); json.writeStringField("description", description); json.writeStringField("notes", notes); json.writeNumberField("created", created); if (custom == null) { json.writeNullField("custom"); } else { json.writeObjectFieldStart("custom"); for (Map.Entry<String, String> entry : custom.entrySet()) { json.writeStringField(entry.getKey(), entry.getValue()); } json.writeEndObject(); } json.writeEndObject(); json.close(); return output.toByteArray(); } catch (IOException e) { throw new RuntimeException("Unable to serialize UIDMeta", e); } }
From source file:com.msopentech.odatajclient.engine.performance.BasicPerfTest.java
@Test public void writeJSONViaLowerlevelLibs() throws IOException { final StringWriter writer = new StringWriter(); final ObjectMapper mapper = new ObjectMapper(); final JsonGenerator jgen = mapper.getFactory().createGenerator(writer); jgen.writeStartObject();// w w w.j a va2 s . co m jgen.writeStringField("odata.type", "Microsoft.Test.OData.Services.AstoriaDefaultService.Customer"); jgen.writeStringField("Name@odata.type", "Edm.String"); jgen.writeStringField("Name", "A name"); jgen.writeStringField("CustomerId@odata.type", "Edm.Int32"); jgen.writeNumberField("CustomerId", 0); jgen.writeArrayFieldStart("BackupContactInfo"); jgen.writeStartObject(); jgen.writeArrayFieldStart("AlternativeNames"); jgen.writeString("myname"); jgen.writeEndArray(); jgen.writeArrayFieldStart("EmailBag"); jgen.writeString("myname@mydomain.com"); jgen.writeEndArray(); jgen.writeObjectFieldStart("ContactAlias"); jgen.writeStringField("odata.type", "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"); jgen.writeArrayFieldStart("AlternativeNames"); jgen.writeString("myAlternativeName"); jgen.writeEndArray(); jgen.writeEndObject(); jgen.writeEndObject(); jgen.writeEndArray(); jgen.writeEndObject(); jgen.flush(); assertFalse(writer.toString().isEmpty()); }
From source file:com.baidubce.services.bmr.BmrClient.java
/** * Add steps to a BMR cluster./*from w w w .j a v a 2 s. co m*/ * * @param request containing the ID of target BMR cluster and several steps to be added. * @return The response containing a list of IDs of newly added steps. */ public AddStepsResponse addSteps(AddStepsRequest request) { checkNotNull(request, "request should not be null."); checkNotNull(request.getSteps(), "The parameter steps should not be null."); checkStringNotEmpty(request.getClusterId(), "The parameter clusterId should not be null or empty string."); StringWriter writer = new StringWriter(); List<StepConfig> steps = request.getSteps(); try { JsonGenerator jsonGenerator = JsonUtils.jsonGeneratorOf(writer); jsonGenerator.writeStartObject(); jsonGenerator.writeArrayFieldStart("steps"); for (StepConfig step : steps) { jsonGenerator.writeStartObject(); if (step.getName() != null) { jsonGenerator.writeStringField("name", step.getName()); } jsonGenerator.writeStringField("type", step.getType()); jsonGenerator.writeStringField("actionOnFailure", step.getActionOnFailure()); jsonGenerator.writeObjectFieldStart("properties"); for (String propertyKey : step.getProperties().keySet()) { jsonGenerator.writeObjectField(propertyKey, step.getProperties().get(propertyKey)); } jsonGenerator.writeEndObject(); jsonGenerator.writeEndObject(); } jsonGenerator.writeEndArray(); jsonGenerator.writeEndObject(); jsonGenerator.close(); } catch (IOException e) { throw new BceClientException("Fail to generate json", e); } byte[] json = null; try { json = writer.toString().getBytes(DEFAULT_ENCODING); } catch (UnsupportedEncodingException e) { throw new BceClientException("Fail to get UTF-8 bytes", e); } InternalRequest internalRequest = this.createRequest(request, HttpMethodName.POST, CLUSTER, request.getClusterId(), STEP); internalRequest.addHeader(Headers.CONTENT_LENGTH, String.valueOf(json.length)); internalRequest.addHeader(Headers.CONTENT_TYPE, "application/json"); internalRequest.setContent(RestartableInputStream.wrap(json)); if (request.getClientToken() != null) { internalRequest.addParameter("clientToken", request.getClientToken()); } return this.invokeHttpClient(internalRequest, AddStepsResponse.class); }
From source file:pl.selvin.android.syncframework.content.TableInfo.java
public void GetChanges(SQLiteDatabase db, JsonGenerator gen, ArrayList<TableInfo> notifyTableInfo) throws IOException { String[] cols = new String[columns.length + 3]; int i = 0;// w w w.ja v a 2s . c o m for (; i < columns.length; i++) cols[i] = columns[i].name; cols[i] = _.uri; cols[i + 1] = _.tempId; cols[i + 2] = _.isDeleted; Cursor c = db.query(name, cols, _.isDirtyP, new String[] { "1" }, null, null, null); //to fix startPos > actual rows for large cursors db operations should be done after cursor is closed ... final ArrayList<OperationHolder> operations = new ArrayList<OperationHolder>(); if (c.moveToFirst()) { if (!notifyTableInfo.contains(this)) notifyTableInfo.add(this); do { gen.writeStartObject(); gen.writeObjectFieldStart(_.__metadata); gen.writeBooleanField(_.isDirty, true); gen.writeStringField(_.type, scope_name); //Log.d("before", scope_name + ":" + c.getLong(i + 3)); String uri = c.getString(i); //Log.d("after", scope_name + ":" + c.getLong(i + 3)); if (uri == null) { gen.writeStringField(_.tempId, c.getString(i + 1)); } else { gen.writeStringField(_.uri, uri); final ContentValues update = new ContentValues(1); update.put(_.isDirty, 0); operations.add(new OperationHolder(name, OperationHolder.UPDATE, update, uri)); } boolean isDeleted = c.getInt(i + 2) == 1; if (isDeleted) { gen.writeBooleanField(_.isDeleted, true); gen.writeEndObject();// meta operations.add(new OperationHolder(name, OperationHolder.DELETE, null, uri)); } else { gen.writeEndObject();// meta for (i = 0; i < columns.length; i++) { if (columns[i].nullable && c.isNull(i)) { gen.writeNullField(columns[i].name); } else { switch (columns[i].type) { case ColumnType.BLOB: gen.writeBinaryField(columns[i].name, c.getBlob(i)); break; case ColumnType.BOOLEAN: gen.writeBooleanField(columns[i].name, c.getLong(i) == 1); break; case ColumnType.INTEGER: gen.writeNumberField(columns[i].name, c.getLong(i)); break; case ColumnType.DATETIME: try { gen.writeStringField(columns[i].name, String.format(msdate, sdf.parse(c.getString(i)).getTime())); } catch (Exception e) { if (BuildConfig.DEBUG) { Log.e("ListSync", e.getLocalizedMessage()); } } break; case ColumnType.NUMERIC: gen.writeNumberField(columns[i].name, c.getDouble(i)); break; default: gen.writeStringField(columns[i].name, c.getString(i)); break; } } } } gen.writeEndObject(); // end of row } while (c.moveToNext()); } c.close(); for (OperationHolder operation : operations) operation.execute(db); }