Example usage for com.fasterxml.jackson.core JsonGenerator writeString

List of usage examples for com.fasterxml.jackson.core JsonGenerator writeString

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonGenerator writeString.

Prototype

public abstract void writeString(SerializableString text) throws IOException, JsonGenerationException;

Source Link

Document

Method similar to #writeString(String) , but that takes SerializableString which can make this potentially more efficient to call as generator may be able to reuse quoted and/or encoded representation.

Usage

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();
}