List of usage examples for com.fasterxml.jackson.core JsonGenerator writeString
public abstract void writeString(SerializableString text) throws IOException, JsonGenerationException;
From source file:com.wealdtech.jackson.modules.DateTimeRangeSerializer.java
@Override public void serialize(final Range<DateTime> value, final JsonGenerator gen, final SerializerProvider provider) throws IOException { if (value != null) { final StringBuilder sb = new StringBuilder(64); if (value.hasLowerBound()) { if (value.lowerBoundType().equals(BoundType.CLOSED)) { sb.append('['); } else { sb.append('('); }/*ww w .j a va 2s. c o m*/ sb.append(formatter.print(value.lowerEndpoint())); } else { sb.append('('); sb.append(NEGATIVE_INFINITY); } sb.append(','); if (value.hasUpperBound()) { sb.append(formatter.print(value.upperEndpoint())); if (value.upperBoundType().equals(BoundType.CLOSED)) { sb.append(']'); } else { sb.append(')'); } } else { sb.append(POSITIVE_INFINITY); sb.append(')'); } gen.writeString(sb.toString()); } }
From source file:org.apache.olingo.client.core.serialization.JsonSerializer.java
protected void valuable(final JsonGenerator jgen, final Valuable valuable, final String name) throws IOException, EdmPrimitiveTypeException { if (!Constants.VALUE.equals(name) && !(valuable instanceof Annotation) && !(valuable.isComplex() && !valuable.isCollection())) { String type = valuable.getType(); if ((!valuable.isCollection() && StringUtils.isBlank(type) && valuable.isPrimitive()) || valuable.isNull()) {/* w ww .j a va2s . c om*/ type = EdmPrimitiveTypeKind.String.getFullQualifiedName().toString(); } if (StringUtils.isNotBlank(type) && !isODataMetadataNone(contentType)) { jgen.writeFieldName(name + StringUtils.prependIfMissing(Constants.JSON_TYPE, "@")); jgen.writeString(new EdmTypeInfo.Builder().setTypeExpression(type).build().external()); } } for (Annotation annotation : ((Annotatable) valuable).getAnnotations()) { valuable(jgen, annotation, name + "@" + annotation.getTerm()); } jgen.writeFieldName(name); value(jgen, valuable.getType(), valuable); }
From source file:io.pdef.json.JsonJacksonFormat.java
private <T> void write(final T object, final DataTypeDescriptor<T> descriptor, final JsonGenerator generator) throws IOException { if (object == null) { generator.writeNull();// w w w .jav a 2s.com return; } switch (descriptor.getType()) { case BOOL: generator.writeBoolean((Boolean) object); break; case INT16: generator.writeNumber((Short) object); break; case INT32: generator.writeNumber((Integer) object); break; case INT64: generator.writeNumber((Long) object); break; case FLOAT: generator.writeNumber((Float) object); break; case DOUBLE: generator.writeNumber((Double) object); break; case STRING: generator.writeString((String) object); break; case DATETIME: writeDatetime((Date) object, generator); break; case LIST: writeList((List) object, (ListDescriptor) descriptor, generator); break; case SET: writeSet((Set) object, (SetDescriptor) descriptor, generator); break; case MAP: writeMap((Map) object, (MapDescriptor) descriptor, generator); break; case VOID: generator.writeNull(); break; case ENUM: writeEnum((Enum) object, generator); break; case MESSAGE: writeMessage((Message) object, generator); break; default: throw new JsonFormatException("Unsupported descriptor " + descriptor); } }
From source file:org.apache.olingo.commons.core.data.AbstractJsonSerializer.java
private void value(final JsonGenerator jgen, final String type, final Value value) throws IOException { final EdmTypeInfo typeInfo = type == null ? null : new EdmTypeInfo.Builder().setTypeExpression(type).build(); if (value.isNull()) { jgen.writeNull();/*from w w w . j a va 2 s . co m*/ } else if (value.isSimple()) { final boolean isNumber = typeInfo == null ? NumberUtils.isNumber(value.asSimple().get()) : ArrayUtils.contains(NUMBER_TYPES, typeInfo.getPrimitiveTypeKind()); final boolean isBoolean = typeInfo == null ? (value.asSimple().get().equalsIgnoreCase(Boolean.TRUE.toString()) || value.asSimple().get().equalsIgnoreCase(Boolean.FALSE.toString())) : typeInfo.getPrimitiveTypeKind() == EdmPrimitiveTypeKind.Boolean; if (isNumber) { jgen.writeNumber(value.asSimple().get()); } else if (isBoolean) { jgen.writeBoolean(BooleanUtils.toBoolean(value.asSimple().get())); } else { jgen.writeString(value.asSimple().get()); } } else if (value.isGeospatial()) { jgen.writeStartObject(); geoSerializer.serialize(jgen, value.asGeospatial().get()); jgen.writeEndObject(); } else if (value.isCollection()) { collection(jgen, typeInfo == null ? null : typeInfo.getFullQualifiedName().toString(), value.asCollection()); } else if (value.isComplex()) { jgen.writeStartObject(); for (Property property : value.asComplex().get()) { property(jgen, property, property.getName()); } jgen.writeEndObject(); } }
From source file:org.talend.dataprep.schema.csv.CSVSerializer.java
/** * Write the line content.//from w ww . jav a2 s . co m * * @param reader the csv reader to use as data source. * @param metadata the dataset metadata to use to get the columns. * @param generator the json generator used to actually write the line content. * @param separator the csv separator to use. * @param limit The maximum number of lines in the exported content. * @throws IOException if an error occurs. */ private void writeLineContent(CSVReader reader, DataSetMetadata metadata, JsonGenerator generator, String separator, long limit) throws IOException { String[] line; int current = 0; while ((line = reader.readNext()) != null && withinLimit(limit, current)) { // skip empty lines if (line.length == 1 && (StringUtils.isEmpty(line[0]) || line[0].charAt(0) == '\u0000')) { continue; } List<ColumnMetadata> columns = metadata.getRowMetadata().getColumns(); generator.writeStartObject(); int columnsSize = columns.size(); for (int i = 0; i < columnsSize; i++) { ColumnMetadata columnMetadata = columns.get(i); generator.writeFieldName(columnMetadata.getId()); // deal with additional content (line.length > columns.size) if (i == columnsSize - 1 && line.length > columnsSize) { String additionalContent = getRemainingColumns(line, i, separator); generator.writeString(cleanCharacters(additionalContent)); } // deal with fewer content (line.length < columns.size) else if (i < line.length && line[i] != null) { generator.writeString(cleanCharacters(line[i])); } // deal with null else { generator.writeNull(); } } generator.writeEndObject(); current++; } }
From source file:ninja.leaping.configurate.json.JSONConfigurationLoader.java
private void generateValue(JsonGenerator generator, ConfigurationNode node) throws IOException { if (node.hasMapChildren()) { generateObject(generator, node); } else if (node.hasListChildren()) { generateArray(generator, node);// www.j ava 2 s .c o m } else { Object value = node.getValue(); if (value instanceof Double) { generator.writeNumber((Double) value); } else if (value instanceof Float) { generator.writeNumber((Float) value); } else if (value instanceof Long) { generator.writeNumber((Long) value); } else if (value instanceof Integer) { generator.writeNumber((Integer) value); } else if (value instanceof Boolean) { generator.writeBoolean((Boolean) value); } else if (value instanceof byte[]) { generator.writeBinary((byte[]) value); } else { generator.writeString(value.toString()); } } }
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. ja v a 2s .com 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); }
From source file:api.controller.ApiDocsController.java
@RequestMapping(method = RequestMethod.GET, headers = "Accept=application/json") public @ResponseBody String genDocs() throws IOException { StringWriter sw = new StringWriter(); JsonGenerator g = new JsonFactory().createGenerator(sw); g.useDefaultPrettyPrinter();//www . j av a2 s.c om g.writeStartObject(); g.writeStringField("swagger", "2.0"); g.writeObjectFieldStart("info"); g.writeStringField("title", "Java, SpringMVC, Jetty, Heroku API example"); g.writeStringField("description", "Example of simple microservice for API"); g.writeObjectFieldStart("contact"); g.writeStringField("name", "zedar"); g.writeStringField("url", "https://github.com/zedar"); g.writeEndObject(); g.writeObjectFieldStart("license"); g.writeStringField("name", "Creative Commons 4.0 International"); g.writeStringField("url", "http://creativecommons.org/licenses/by/4.0/"); g.writeEndObject(); g.writeStringField("version", "0.0.1"); g.writeEndObject(); g.writeStringField("host", "api-springmvc-jetty.herokuapp.com"); g.writeStringField("basePath", "/api"); g.writeArrayFieldStart("schemes"); g.writeString("https"); g.writeEndArray(); g.writeObjectFieldStart("paths"); g.writeObjectFieldStart("/actions"); g.writeObjectFieldStart("get"); g.writeArrayFieldStart("tags"); g.writeString("action"); g.writeEndArray(); g.writeStringField("summary", "Find actions with optional query"); g.writeArrayFieldStart("parameters"); g.writeStartObject(); g.writeStringField("name", "query"); g.writeStringField("in", "query"); g.writeStringField("type", "string"); g.writeEndObject(); g.writeEndArray(); g.writeObjectFieldStart("responses"); g.writeObjectFieldStart("200"); g.writeStringField("description", "Response with list of found actions"); g.writeObjectFieldStart("schema"); g.writeStringField("type", "array"); g.writeObjectFieldStart("items"); g.writeStringField("$ref", "#/definitions/Action"); g.writeEndObject(); g.writeEndObject(); g.writeEndObject(); g.writeObjectFieldStart("default"); g.writeStringField("description", "Unexpected error"); g.writeObjectFieldStart("schema"); g.writeStringField("$ref", "#/definitions/Error"); g.writeEndObject(); g.writeEndObject(); g.writeEndObject(); g.writeEndObject(); g.writeEndObject(); g.writeEndObject(); g.writeObjectFieldStart("definitions"); g.writeObjectFieldStart("Action"); g.writeArrayFieldStart("required"); g.writeString("id"); g.writeString("name"); g.writeEndArray(); g.writeObjectFieldStart("properties"); g.writeObjectFieldStart("id"); g.writeStringField("type", "string"); g.writeEndObject(); g.writeObjectFieldStart("name"); g.writeStringField("type", "string"); g.writeEndObject(); g.writeObjectFieldStart("description"); g.writeStringField("type", "string"); g.writeEndObject(); g.writeObjectFieldStart("url"); g.writeStringField("type", "string"); g.writeEndObject(); g.writeObjectFieldStart("tags"); g.writeStringField("type", "string"); g.writeEndObject(); g.writeEndObject(); g.writeEndObject(); g.writeObjectFieldStart("Error"); g.writeArrayFieldStart("required"); g.writeString("code"); g.writeString("message"); g.writeEndArray(); g.writeObjectFieldStart("properties"); g.writeObjectFieldStart("code"); g.writeStringField("type", "string"); g.writeEndObject(); g.writeObjectFieldStart("message"); g.writeStringField("type", "string"); g.writeEndObject(); g.writeEndObject(); g.writeEndObject(); g.writeEndObject(); g.writeEndObject(); g.close(); String out = sw.toString(); log.debug("API-DOCS:" + out); return out; }
From source file:org.apache.olingo.commons.core.serialization.JsonSerializer.java
private void collection(final JsonGenerator jgen, final EdmTypeInfo typeInfo, final ValueType valueType, final List<?> value) throws IOException, EdmPrimitiveTypeException { jgen.writeStartArray();// w w w . java 2 s .c om for (Object item : value) { final EdmTypeInfo itemTypeInfo = typeInfo == null ? null : new EdmTypeInfo.Builder().setTypeExpression(typeInfo.getFullQualifiedName().toString()) .build(); switch (valueType) { case COLLECTION_PRIMITIVE: primitiveValue(jgen, itemTypeInfo, item); break; case COLLECTION_GEOSPATIAL: jgen.writeStartObject(); geoSerializer.serialize(jgen, (Geospatial) item); jgen.writeEndObject(); break; case COLLECTION_ENUM: jgen.writeString(item.toString()); break; case COLLECTION_COMPLEX: @SuppressWarnings("unchecked") final List<Property> complexItem = (List<Property>) item; complexValue(jgen, itemTypeInfo, complexItem, null); break; case COLLECTION_LINKED_COMPLEX: final LinkedComplexValue complexItem2 = (LinkedComplexValue) item; complexValue(jgen, itemTypeInfo, complexItem2.getValue(), complexItem2); break; default: } } jgen.writeEndArray(); }
From source file:org.apache.olingo.client.core.serialization.JsonSerializer.java
private void collection(final JsonGenerator jgen, final EdmTypeInfo typeInfo, final ValueType valueType, final List<?> value) throws IOException, EdmPrimitiveTypeException { jgen.writeStartArray();/*ww w .ja v a 2 s.c o m*/ for (Object item : value) { final EdmTypeInfo itemTypeInfo = typeInfo == null ? null : new EdmTypeInfo.Builder().setTypeExpression(typeInfo.getFullQualifiedName().toString()) .build(); switch (valueType) { case COLLECTION_PRIMITIVE: primitiveValue(jgen, itemTypeInfo, item); break; case COLLECTION_GEOSPATIAL: jgen.writeStartObject(); geoSerializer.serialize(jgen, (Geospatial) item); jgen.writeEndObject(); break; case COLLECTION_ENUM: jgen.writeString(item.toString()); break; case COLLECTION_COMPLEX: final ComplexValue complexItem2 = (ComplexValue) item; complexValue(jgen, itemTypeInfo, complexItem2.getValue(), complexItem2); break; default: } } jgen.writeEndArray(); }