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

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

Introduction

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

Prototype

public abstract void writeNull() throws IOException, JsonGenerationException;

Source Link

Document

Method for outputting literal Json null value.

Usage

From source file:org.apache.orc.bench.convert.json.JsonWriter.java

static void printValue(JsonGenerator writer, ColumnVector vector, TypeDescription schema, int row)
        throws IOException {
    if (vector.isRepeating) {
        row = 0;//from w  ww. j av a  2s .co m
    }
    if (vector.noNulls || !vector.isNull[row]) {
        switch (schema.getCategory()) {
        case BOOLEAN:
            writer.writeBoolean(((LongColumnVector) vector).vector[row] != 0);
            break;
        case BYTE:
        case SHORT:
        case INT:
        case LONG:
            writer.writeNumber(((LongColumnVector) vector).vector[row]);
            break;
        case FLOAT:
        case DOUBLE:
            writer.writeNumber(((DoubleColumnVector) vector).vector[row]);
            break;
        case STRING:
        case CHAR:
        case VARCHAR:
            writer.writeString(((BytesColumnVector) vector).toString(row));
            break;
        case BINARY:
            printBinary(writer, (BytesColumnVector) vector, row);
            break;
        case DECIMAL:
            writer.writeString(((DecimalColumnVector) vector).vector[row].toString());
            break;
        case DATE:
            writer.writeString(new DateWritable((int) ((LongColumnVector) vector).vector[row]).toString());
            break;
        case TIMESTAMP:
            writer.writeString(((TimestampColumnVector) vector).asScratchTimestamp(row).toString());
            break;
        case LIST:
            printList(writer, (ListColumnVector) vector, schema, row);
            break;
        case MAP:
            printMap(writer, (MapColumnVector) vector, schema, row);
            break;
        case STRUCT:
            printStruct(writer, (StructColumnVector) vector, schema, row);
            break;
        case UNION:
            printUnion(writer, (UnionColumnVector) vector, schema, row);
            break;
        default:
            throw new IllegalArgumentException("Unknown type " + schema.toString());
        }
    } else {
        writer.writeNull();
    }
}

From source file:com.zenesis.qx.remote.ProxyMethod.java

@Override
public void serialize(JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonProcessingException {
    jgen.writeStartObject();//from w  w  w  .j a v  a  2 s  .c  o m

    // Write the return type
    Class clazz = arrayType != null ? arrayType : method.getReturnType();
    if (Proxied.class.isAssignableFrom(clazz)) {
        ProxyType type = ProxyTypeManager.INSTANCE.getProxyType(clazz);
        jgen.writeObjectField("returnType", type);
    } else if (isMap) {
        jgen.writeBooleanField("map", true);
    }
    if (cacheResult)
        jgen.writeBooleanField("cacheResult", true);
    if (staticMethod)
        jgen.writeBooleanField("staticMethod", true);

    // Whether to wrap the return
    if (array != null)
        jgen.writeObjectField("returnArray", array.toString().toLowerCase());

    // The parameters - if any are Proxied objects, we need to write their class
    Class[] parameters = method.getParameterTypes();
    if (parameters.length > 0) {
        jgen.writeArrayFieldStart("parameters");
        for (int i = 0; i < parameters.length; i++) {
            if (Proxied.class.isAssignableFrom(parameters[i]))
                jgen.writeObject(ProxyTypeManager.INSTANCE.getProxyType(parameters[i]));
            else
                jgen.writeNull();
        }
        jgen.writeEndArray();
    }

    jgen.writeEndObject();
}

From source file:org.oncoblocks.centromere.web.util.FilteringJackson2HttpMessageConverter.java

@Override
protected void writeInternal(Object object, Type type, HttpOutputMessage outputMessage)
        throws IOException, HttpMessageNotWritableException {

    ObjectMapper objectMapper = getObjectMapper();
    JsonGenerator jsonGenerator = objectMapper.getFactory().createGenerator(outputMessage.getBody());

    try {//from  w  w  w  .j av  a  2  s .  com

        if (this.prefixJson) {
            jsonGenerator.writeRaw(")]}', ");
        }

        if (object instanceof ResponseEnvelope) {

            ResponseEnvelope envelope = (ResponseEnvelope) object;
            Object entity = envelope.getEntity();
            Set<String> fieldSet = envelope.getFieldSet();
            Set<String> exclude = envelope.getExclude();
            FilterProvider filters = null;

            if (fieldSet != null && !fieldSet.isEmpty()) {
                if (entity instanceof ResourceSupport) {
                    fieldSet.add("content"); // Don't filter out the wrapped content.
                }
                filters = new SimpleFilterProvider()
                        .addFilter("fieldFilter", SimpleBeanPropertyFilter.filterOutAllExcept(fieldSet))
                        .setFailOnUnknownId(false);
            } else if (exclude != null && !exclude.isEmpty()) {
                filters = new SimpleFilterProvider()
                        .addFilter("fieldFilter", SimpleBeanPropertyFilter.serializeAllExcept(exclude))
                        .setFailOnUnknownId(false);
            } else {
                filters = new SimpleFilterProvider()
                        .addFilter("fieldFilter", SimpleBeanPropertyFilter.serializeAllExcept())
                        .setFailOnUnknownId(false);
            }

            objectMapper.setFilterProvider(filters);
            objectMapper.writeValue(jsonGenerator, entity);

        } else if (object == null) {
            jsonGenerator.writeNull();
        } else {
            FilterProvider filters = new SimpleFilterProvider().setFailOnUnknownId(false);
            objectMapper.setFilterProvider(filters);
            objectMapper.writeValue(jsonGenerator, object);
        }

    } catch (JsonProcessingException e) {
        e.printStackTrace();
        throw new HttpMessageNotWritableException("Could not write JSON: " + e.getMessage());
    }

}

From source file:org.apache.nifi.processors.elasticsearch.PutElasticsearchHttpRecord.java

@SuppressWarnings("unchecked")
private void writeValue(final JsonGenerator generator, final Object value, final String fieldName,
        final DataType dataType) throws IOException {
    if (value == null) {
        generator.writeNull();
        return;/*from  w w  w. j ava  2s. c o  m*/
    }

    final DataType chosenDataType = dataType.getFieldType() == RecordFieldType.CHOICE
            ? DataTypeUtils.chooseDataType(value, (ChoiceDataType) dataType)
            : dataType;
    final Object coercedValue = DataTypeUtils.convertType(value, chosenDataType, fieldName);
    if (coercedValue == null) {
        generator.writeNull();
        return;
    }

    switch (chosenDataType.getFieldType()) {
    case DATE: {
        final String stringValue = DataTypeUtils.toString(coercedValue,
                () -> DataTypeUtils.getDateFormat(RecordFieldType.DATE.getDefaultFormat()));
        if (DataTypeUtils.isLongTypeCompatible(stringValue)) {
            generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
        } else {
            generator.writeString(stringValue);
        }
        break;
    }
    case TIME: {
        final String stringValue = DataTypeUtils.toString(coercedValue,
                () -> DataTypeUtils.getDateFormat(RecordFieldType.TIME.getDefaultFormat()));
        if (DataTypeUtils.isLongTypeCompatible(stringValue)) {
            generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
        } else {
            generator.writeString(stringValue);
        }
        break;
    }
    case TIMESTAMP: {
        final String stringValue = DataTypeUtils.toString(coercedValue,
                () -> DataTypeUtils.getDateFormat(RecordFieldType.TIMESTAMP.getDefaultFormat()));
        if (DataTypeUtils.isLongTypeCompatible(stringValue)) {
            generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
        } else {
            generator.writeString(stringValue);
        }
        break;
    }
    case DOUBLE:
        generator.writeNumber(DataTypeUtils.toDouble(coercedValue, fieldName));
        break;
    case FLOAT:
        generator.writeNumber(DataTypeUtils.toFloat(coercedValue, fieldName));
        break;
    case LONG:
        generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
        break;
    case INT:
    case BYTE:
    case SHORT:
        generator.writeNumber(DataTypeUtils.toInteger(coercedValue, fieldName));
        break;
    case CHAR:
    case STRING:
        generator.writeString(coercedValue.toString());
        break;
    case BIGINT:
        if (coercedValue instanceof Long) {
            generator.writeNumber((Long) coercedValue);
        } else {
            generator.writeNumber((BigInteger) coercedValue);
        }
        break;
    case BOOLEAN:
        final String stringValue = coercedValue.toString();
        if ("true".equalsIgnoreCase(stringValue)) {
            generator.writeBoolean(true);
        } else if ("false".equalsIgnoreCase(stringValue)) {
            generator.writeBoolean(false);
        } else {
            generator.writeString(stringValue);
        }
        break;
    case RECORD: {
        final Record record = (Record) coercedValue;
        final RecordDataType recordDataType = (RecordDataType) chosenDataType;
        final RecordSchema childSchema = recordDataType.getChildSchema();
        writeRecord(record, childSchema, generator);
        break;
    }
    case MAP: {
        final MapDataType mapDataType = (MapDataType) chosenDataType;
        final DataType valueDataType = mapDataType.getValueType();
        final Map<String, ?> map = (Map<String, ?>) coercedValue;
        generator.writeStartObject();
        for (final Map.Entry<String, ?> entry : map.entrySet()) {
            final String mapKey = entry.getKey();
            final Object mapValue = entry.getValue();
            generator.writeFieldName(mapKey);
            writeValue(generator, mapValue, fieldName + "." + mapKey, valueDataType);
        }
        generator.writeEndObject();
        break;
    }
    case ARRAY:
    default:
        if (coercedValue instanceof Object[]) {
            final Object[] values = (Object[]) coercedValue;
            final ArrayDataType arrayDataType = (ArrayDataType) dataType;
            final DataType elementType = arrayDataType.getElementType();
            writeArray(values, fieldName, generator, elementType);
        } else {
            generator.writeString(coercedValue.toString());
        }
        break;
    }
}

From source file:org.apache.olingo.client.core.serialization.JsonSerializer.java

protected void primitiveValue(final JsonGenerator jgen, final EdmTypeInfo typeInfo, final Object value)
        throws IOException, EdmPrimitiveTypeException {

    final EdmPrimitiveTypeKind kind = typeInfo == null ? null : typeInfo.getPrimitiveTypeKind();
    final boolean isNumber = kind == null ? value instanceof Number : ArrayUtils.contains(NUMBER_TYPES, kind);
    final boolean isBoolean = kind == null ? value instanceof Boolean : kind == EdmPrimitiveTypeKind.Boolean;

    if (value == null) {
        jgen.writeNull();
    } else if (isBoolean) {
        jgen.writeBoolean((Boolean) value);
    } else {//from   w w w.  j  ava2 s .c o m
        String serialized = kind == null ? value.toString()
                // TODO: add facets
                : EdmPrimitiveTypeFactory.getInstance(kind).valueToString(value, null, null,
                        Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null);

        if (isIEEE754Compatible
                && (kind == EdmPrimitiveTypeKind.Int64 || kind == EdmPrimitiveTypeKind.Decimal)) {
            jgen.writeString(serialized);
        } else if (isNumber) {
            jgen.writeNumber(serialized);
        } else {
            jgen.writeString(serialized);
        }
    }
}

From source file:org.apache.olingo.client.core.serialization.JsonSerializer.java

private void value(final JsonGenerator jgen, final String type, final Valuable value)
        throws IOException, EdmPrimitiveTypeException {
    final EdmTypeInfo typeInfo = type == null ? null
            : new EdmTypeInfo.Builder().setTypeExpression(type).build();

    if (value.isNull()) {
        jgen.writeNull();
    } else if (value.isCollection()) {
        collection(jgen, typeInfo, value.getValueType(), value.asCollection());
    } else if (value.isPrimitive()) {
        primitiveValue(jgen, typeInfo, value.asPrimitive());
    } else if (value.isEnum()) {
        jgen.writeString(value.asEnum().toString());
    } else if (value.isGeospatial()) {
        jgen.writeStartObject();// www . j  a  va 2s  .c  om
        geoSerializer.serialize(jgen, value.asGeospatial());
        jgen.writeEndObject();
    } else if (value.isComplex()) {
        complexValue(jgen, typeInfo, value.asComplex().getValue(), value.asComplex());
    }
}

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();
    } 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 {/* w  ww.j a  v a  2 s.  c  o  m*/
            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.apache.olingo.commons.core.serialization.JsonSerializer.java

protected void primitiveValue(final JsonGenerator jgen, final EdmTypeInfo typeInfo, final Object value)
        throws IOException, EdmPrimitiveTypeException {

    final EdmPrimitiveTypeKind kind = typeInfo == null ? null : typeInfo.getPrimitiveTypeKind();
    final boolean isNumber = kind == null ? value instanceof Number : ArrayUtils.contains(NUMBER_TYPES, kind);
    final boolean isBoolean = kind == null ? value instanceof Boolean : kind == EdmPrimitiveTypeKind.Boolean;

    if (value == null) {
        jgen.writeNull();
    } else if (isBoolean) {
        jgen.writeBoolean((Boolean) value);
    } else {//from w  w  w.jav a  2s .co  m
        final String serialized = kind == null ? value.toString()
                // TODO: add facets
                : EdmPrimitiveTypeFactory.getInstance(kind).valueToString(value, null, null,
                        Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null);
        if (isNumber) {
            jgen.writeNumber(serialized);
        } else {
            jgen.writeString(serialized);
        }
    }
}

From source file:org.apache.olingo.commons.core.serialization.JsonSerializer.java

private void value(final JsonGenerator jgen, final String type, final Valuable value)
        throws IOException, EdmPrimitiveTypeException {
    final EdmTypeInfo typeInfo = type == null ? null
            : new EdmTypeInfo.Builder().setTypeExpression(type).build();

    if (value.isNull()) {
        jgen.writeNull();
    } else if (value.isPrimitive()) {
        primitiveValue(jgen, typeInfo, value.asPrimitive());
    } else if (value.isEnum()) {
        jgen.writeString(value.asEnum().toString());
    } else if (value.isGeospatial()) {
        jgen.writeStartObject();/*from w  w w  .  j  a  v  a 2s  .co m*/
        geoSerializer.serialize(jgen, value.asGeospatial());
        jgen.writeEndObject();
    } else if (value.isCollection()) {
        collection(jgen, typeInfo, value.getValueType(), value.asCollection());
    } else if (value.isLinkedComplex()) {
        complexValue(jgen, typeInfo, value.asLinkedComplex().getValue(), value.asLinkedComplex());
    } else if (value.isComplex()) {
        complexValue(jgen, typeInfo, value.asComplex(), null);
    }
}

From source file:org.apache.olingo.server.core.debug.DebugTabBody.java

@Override
public void appendJson(final JsonGenerator gen) throws IOException {
    if (response == null || response.getContent() == null) {
        gen.writeNull();
    } else {//from   w w  w. j  a  v  a  2s.c o  m
        gen.writeString(getContentString());
    }
}