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:org.cloudcoder.dataanalysis.ProgsnapExport.java

private void writeJsonFieldValue(JsonGenerator jg, Object value) throws IOException {
    if (value instanceof String) {
        jg.writeString((String) value);
    } else if (value instanceof Integer) {
        jg.writeNumber(((Integer) value).intValue());
    } else if (value instanceof Long) {
        jg.writeNumber(((Long) value).longValue());
    } else if (value instanceof Double) {
        jg.writeNumber(((Double) value).doubleValue());
    } else if (value instanceof Map) {
        jg.writeStartObject();/*from   w  ww. j  a  va 2  s.c  o m*/
        for (Map.Entry<?, ?> entry : ((Map<?, ?>) value).entrySet()) {
            jg.writeFieldName(entry.getKey().toString());
            writeJsonFieldValue(jg, entry.getValue());
        }
        jg.writeEndObject();
    } else if (value instanceof Boolean) {
        jg.writeBoolean(((Boolean) value).booleanValue());
    } else {
        throw new IllegalArgumentException(
                "Don't know how to encode " + value.getClass().getSimpleName() + " as JSON value");
    }
}

From source file:org.jongo.query.BsonQueryFactoryTest.java

@Test
public void canHandlePOJOSerializedAsString() throws Exception {

    Mapping mapping = new Mapping.Builder().addSerializer(Friend.class, new JsonSerializer<Friend>() {

        @Override/*from  w  ww.ja  v a  2 s  . c  om*/
        public void serialize(Friend friend, JsonGenerator jgen, SerializerProvider provider)
                throws IOException {
            jgen.writeString(friend.getName());
        }
    }).build();
    QueryFactory customFactory = new BsonQueryFactory(new JacksonEngine(mapping));

    DBObject query = customFactory.createQuery("{friend:#}", new Friend("Robert")).toDBObject();

    assertThat(query.get("friend")).isEqualTo("Robert");
}

From source file:be.dnsbelgium.rdap.jackson.ContactSerializer.java

@Override
public void serialize(Contact contact, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
        throws IOException {
    jsonGenerator.writeStartArray();//from   w w w  .j av  a2s  . c om
    // start write version
    jsonGenerator.writeStartArray();
    jsonGenerator.writeString("version");
    jsonGenerator.writeStartObject();
    jsonGenerator.writeEndObject();
    jsonGenerator.writeString("text");
    jsonGenerator.writeString("4.0");
    jsonGenerator.writeEndArray();
    // end write version
    for (Contact.Property property : contact.getProperties()) {
        // start write property
        jsonGenerator.writeStartArray();
        // start write property name
        String key = (property.getGroup() == null) ? property.getName()
                : property.getGroup() + "." + property.getName();
        jsonGenerator.writeString(property.getName().toLowerCase(Locale.ENGLISH));
        // end write property name
        // start write property parameters
        jsonGenerator.writeStartObject();
        if (property.getGroup() != null) {
            jsonGenerator.writeFieldName("group");
            jsonGenerator.writeString(property.getGroup());
        }
        if (property.getParameters() != null) {

            Iterator<String> it = property.getParameters().keys();
            while (it.hasNext()) {
                String k = it.next();
                if (k.equalsIgnoreCase("value")) {
                    continue;
                }
                Set<String> values = property.getParameters().get(k);
                if (values.size() == 0) {
                    // no parameters for this property, skip this step
                    continue;
                }
                jsonGenerator.writeFieldName(k.toLowerCase(Locale.ENGLISH));
                if (values.size() == 1) {
                    jsonGenerator.writeString(values.toArray(new String[values.size()])[0]);
                    continue;
                }
                // start write all property parameter values (array)
                jsonGenerator.writeStartArray();
                for (String str : property.getParameters().get(k)) {
                    jsonGenerator.writeString(str);
                }
                jsonGenerator.writeEndArray();
                // end write all property parameter values (array)

            }
        }
        jsonGenerator.writeEndObject();
        // end write property parameters
        // start write property type
        String value = "text";
        if (property.getParameters() != null) {
            Set<String> types = property.getParameters().get("VALUE");
            if (types != null) {
                value = types.iterator().next();
            }
        }
        jsonGenerator.writeString(value);
        // end write property type
        // start write property value
        JsonSerializer s = serializerProvider.findValueSerializer(property.getValue().getClass(), null);
        s.serialize(property.getValue(), jsonGenerator, serializerProvider);
        // end write property value
        jsonGenerator.writeEndArray();
        // end write property
    }
    jsonGenerator.writeEndArray();
}

From source file:io.debezium.document.JacksonWriter.java

protected void writeValue(Value value, JsonGenerator generator) throws IOException {
    switch (value.getType()) {
    case NULL:/*from  w w  w. jav a2 s  .  co  m*/
        generator.writeNull();
        break;
    case STRING:
        generator.writeString(value.asString());
        break;
    case BOOLEAN:
        generator.writeBoolean(value.asBoolean());
        break;
    case BINARY:
        generator.writeBinary(value.asBytes());
        break;
    case INTEGER:
        generator.writeNumber(value.asInteger());
        break;
    case LONG:
        generator.writeNumber(value.asLong());
        break;
    case FLOAT:
        generator.writeNumber(value.asFloat());
        break;
    case DOUBLE:
        generator.writeNumber(value.asDouble());
        break;
    case BIG_INTEGER:
        generator.writeNumber(value.asBigInteger());
        break;
    case DECIMAL:
        generator.writeNumber(value.asBigDecimal());
        break;
    case DOCUMENT:
        writeDocument(value.asDocument(), generator);
        break;
    case ARRAY:
        writeArray(value.asArray(), generator);
        break;
    }
}

From source file:nl.talsmasoftware.enumerables.support.json.jackson2.EnumerableSerializer.java

@Override
public void serialize(Enumerable value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
    if (value == null) {
        jgen.writeNull();/*from   w  ww  .  j ava  2 s  .c  om*/
    } else if (serializationMethod.serializeAsJsonObject(value.getClass())) {
        serializeObject(value, jgen, provider.getConfig());
    } else {
        jgen.writeString(Enumerable.print(value));
    }
}

From source file:DataTools.ConvertObjectToJson.java

private void addCustomSerializing(ObjectMapper mapper) {
    //custom serializer to help parsing dates
    class dateSerializer extends JsonSerializer<DateTime> {
        @Override//from w w  w  . ja  va 2  s  .  c o m
        public void serialize(DateTime dateTime, JsonGenerator jsonGenerator,
                SerializerProvider serializerProvider) throws IOException {
            jsonGenerator.writeString(cleanupDate(dateTime));
        }
    }

    //custom serializer to help parsing dates
    class zoneDateSerializer extends JsonSerializer<ZonedDateTime> {
        @Override
        public void serialize(ZonedDateTime dateTime, JsonGenerator jsonGenerator,
                SerializerProvider serializerProvider) throws IOException {
            jsonGenerator.writeString(cleanupDate(dateTime));
        }
    }

    class utilDateSerializer extends JsonSerializer<Date> {
        @Override
        public void serialize(Date dateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
                throws IOException {
            jsonGenerator.writeString(dateTime.toString());
        }
    }

    class JsonObjectSerializer extends JsonSerializer<JSONObject> {
        @Override
        public void serialize(JSONObject jsonObject, JsonGenerator jsonGenerator,
                SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
            jsonGenerator.writeString(jsonObject.toString());
        }
    }
    class JsonArraySerializer extends JsonSerializer<JSONArray> {
        @Override
        public void serialize(JSONArray jsonArray, JsonGenerator jsonGenerator,
                SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
            jsonGenerator.writeString(jsonArray.toString());
        }
    }
    class StorageSerializer extends JsonSerializer<Storage> {
        @Override
        public void serialize(Storage storage, JsonGenerator jsonGenerator,
                SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
            jsonGenerator.writeString(storage.toString());
        }
    }

    //setup new serializer
    SimpleModule simpleModule = new SimpleModule();
    simpleModule.addSerializer(DateTime.class, new dateSerializer());
    simpleModule.addSerializer(ZonedDateTime.class, new zoneDateSerializer());
    simpleModule.addSerializer(Date.class, new utilDateSerializer());
    simpleModule.addSerializer(JSONObject.class, new JsonObjectSerializer());
    simpleModule.addSerializer(JSONArray.class, new JsonArraySerializer());
    simpleModule.addSerializer(Storage.class, new StorageSerializer());
    mapper.registerModule(simpleModule);
}

From source file:org.killbill.billing.plugin.meter.timeline.consumer.TimelineChunkDecoded.java

@JsonValue
@Override/*from w  w w.j a va2  s .co m*/
public String toString() {
    try {
        final ByteArrayOutputStream out = new ByteArrayOutputStream();
        final JsonGenerator generator = objectMapper.getJsonFactory().createJsonGenerator(out);
        generator.writeStartObject();

        generator.writeFieldName("metric");
        generator.writeNumber(chunk.getMetricId());

        generator.writeFieldName("decodedSamples");
        generator.writeString(getDecodedSamples());

        generator.writeEndObject();
        generator.close();
        return out.toString();
    } catch (IOException e) {
        log.error("IOException in toString()", e);
    }

    return null;
}

From source file:io.gravitee.definition.jackson.datatype.services.healthcheck.ser.ExpectationSerializer.java

@Override
public void serialize(Expectation expectation, JsonGenerator jgen, SerializerProvider provider)
        throws IOException {
    jgen.writeStartObject();// w w w.  ja  v a 2s.  c  om

    jgen.writeArrayFieldStart("assertions");
    if (expectation.getAssertions() != null && !expectation.getAssertions().isEmpty()) {
        expectation.getAssertions().forEach(assertion -> {
            try {
                jgen.writeString(assertion);
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
    } else {
        jgen.writeString(Expectation.DEFAULT_ASSERTION);
    }

    jgen.writeEndArray();

    jgen.writeEndObject();
}

From source file:org.brutusin.json.impl.JacksonCodec.java

@Override
public void registerStringFormat(Class clazz, String format) {
    this.schemaFactory.registerStringFormat(clazz, format);
    SimpleModule testModule = new SimpleModule("json-provider-module:" + format,
            new Version(1, 0, 0, null, "org.brutusin", "json-provider:" + format));
    testModule.addSerializer(new StdSerializer(clazz) {
        @Override/*from  ww w . j a v a2s  .c o m*/
        public void serialize(Object value, JsonGenerator gen, SerializerProvider provider) throws IOException {
            gen.writeString(value.toString());
        }
    });
    mapper.registerModule(testModule);
}

From source file:org.dbrain.data.jackson.serializers.JsonBigDecimalSerializer.java

@Override
public void serialize(BigDecimal value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
    if (value != null) {
        // Does it have more that 15 significant digits ?
        BigInteger unscaled = value.unscaledValue();
        if (unscaled.compareTo(MIN_VALUE) >= 0 && unscaled.compareTo(MAX_VALUE) <= 0) {
            jgen.writeNumber(value);//from w w w . ja  va 2s .  c om
        } else {
            jgen.writeString(value.toString());
        }
    } else {
        jgen.writeNull();
    }
}