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

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

Introduction

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

Prototype

public abstract void writeFieldName(SerializableString name) throws IOException, JsonGenerationException;

Source Link

Document

Method similar to #writeFieldName(String) , main difference being that it may perform better as some of processing (such as quoting of certain characters, or encoding into external encoding if supported by generator) can be done just once and reused for later calls.

Usage

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

protected void doContainerSerialize(final ResWrap<Property> container, final JsonGenerator jgen)
        throws IOException, EdmPrimitiveTypeException {

    final Property property = container.getPayload();

    jgen.writeStartObject();//from   w  w  w. ja v  a 2s  .c  o m

    if (serverMode && container.getContextURL() != null) {
        jgen.writeStringField(version.compareTo(ODataServiceVersion.V40) >= 0 ? Constants.JSON_CONTEXT
                : Constants.JSON_METADATA, container.getContextURL().toASCIIString());
    }

    if (StringUtils.isNotBlank(property.getType())) {
        jgen.writeStringField(version.getJsonName(ODataServiceVersion.JsonKey.TYPE),
                new EdmTypeInfo.Builder().setTypeExpression(property.getType()).build().external(version));
    }

    for (Annotation annotation : property.getAnnotations()) {
        valuable(jgen, annotation, "@" + annotation.getTerm());
    }

    if (property.isNull()) {
        jgen.writeBooleanField(Constants.JSON_NULL, true);
    } else if (property.isPrimitive()) {
        final EdmTypeInfo typeInfo = property.getType() == null ? null
                : new EdmTypeInfo.Builder().setTypeExpression(property.getType()).build();

        jgen.writeFieldName(Constants.VALUE);
        primitiveValue(jgen, typeInfo, property.asPrimitive());
    } else if (property.isEnum()) {
        jgen.writeStringField(Constants.VALUE, property.asEnum().toString());
    } else if (property.isGeospatial() || property.isCollection()) {
        valuable(jgen, property, Constants.VALUE);
    } else if (property.isLinkedComplex()) {
        for (Property cproperty : property.asLinkedComplex().getValue()) {
            valuable(jgen, cproperty, cproperty.getName());
        }
    } else if (property.isComplex()) {
        for (Property cproperty : property.asComplex()) {
            valuable(jgen, cproperty, cproperty.getName());
        }
    }

    jgen.writeEndObject();
}

From source file:com.google.openrtb.json.OpenRtbJsonWriter.java

protected void writeImpFields(Imp imp, JsonGenerator gen) throws IOException {
    gen.writeStringField("id", imp.getId());
    if (imp.hasBanner()) {
        gen.writeFieldName("banner");
        writeBanner(imp.getBanner(), gen);
    }/*w w w.j a  v  a 2 s . c  o m*/
    if (imp.hasVideo()) {
        gen.writeFieldName("video");
        writeVideo(imp.getVideo(), gen);
    }
    if (imp.hasAudio()) {
        gen.writeFieldName("audio");
        writeAudio(imp.getAudio(), gen);
    }
    if (imp.hasNative()) {
        gen.writeFieldName("native");
        writeNative(imp.getNative(), gen);
    }
    if (imp.hasDisplaymanager()) {
        gen.writeStringField("displaymanager", imp.getDisplaymanager());
    }
    if (imp.hasDisplaymanagerver()) {
        gen.writeStringField("displaymanagerver", imp.getDisplaymanagerver());
    }
    if (imp.hasInstl()) {
        writeIntBoolField("instl", imp.getInstl(), gen);
    }
    if (imp.hasTagid()) {
        gen.writeStringField("tagid", imp.getTagid());
    }
    if (imp.hasBidfloor()) {
        gen.writeNumberField("bidfloor", imp.getBidfloor());
    }
    if (imp.hasBidfloorcur()) {
        gen.writeStringField("bidfloorcur", imp.getBidfloorcur());
    }
    if (imp.hasSecure()) {
        writeIntBoolField("secure", imp.getSecure(), gen);
    }
    writeStrings("iframebuster", imp.getIframebusterList(), gen);
    if (imp.hasPmp()) {
        gen.writeFieldName("pmp");
        writePmp(imp.getPmp(), gen);
    }
    if (imp.hasClickbrowser()) {
        gen.writeBooleanField("clickbrowser", imp.getClickbrowser());
    }
    if (imp.hasExp()) {
        gen.writeNumberField("exp", imp.getExp());
    }
}

From source file:com.google.openrtb.json.OpenRtbJsonWriter.java

protected void writeDeviceFields(Device device, JsonGenerator gen) throws IOException {
    if (device.hasUa()) {
        gen.writeStringField("ua", device.getUa());
    }// w  w w.  j ava2 s  .c  o  m
    if (device.hasGeo()) {
        gen.writeFieldName("geo");
        writeGeo(device.getGeo(), gen);
    }
    if (device.hasDnt()) {
        writeIntBoolField("dnt", device.getDnt(), gen);
    }
    if (device.hasLmt()) {
        writeIntBoolField("lmt", device.getLmt(), gen);
    }
    if (device.hasIp()) {
        gen.writeStringField("ip", device.getIp());
    }
    if (device.hasIpv6()) {
        gen.writeStringField("ipv6", device.getIpv6());
    }
    if (device.hasDevicetype()) {
        gen.writeNumberField("devicetype", device.getDevicetype().getNumber());
    }
    if (device.hasMake()) {
        gen.writeStringField("make", device.getMake());
    }
    if (device.hasModel()) {
        gen.writeStringField("model", device.getModel());
    }
    if (device.hasOs()) {
        gen.writeStringField("os", device.getOs());
    }
    if (device.hasOsv()) {
        gen.writeStringField("osv", device.getOsv());
    }
    if (device.hasHwv()) {
        gen.writeStringField("hwv", device.getHwv());
    }
    if (device.hasW()) {
        gen.writeNumberField("w", device.getW());
    }
    if (device.hasH()) {
        gen.writeNumberField("h", device.getH());
    }
    if (device.hasPpi()) {
        gen.writeNumberField("ppi", device.getPpi());
    }
    if (device.hasPxratio()) {
        gen.writeNumberField("pxratio", device.getPxratio());
    }
    if (device.hasJs()) {
        writeIntBoolField("js", device.getJs(), gen);
    }
    if (device.hasFlashver()) {
        gen.writeStringField("flashver", device.getFlashver());
    }
    if (device.hasLanguage()) {
        gen.writeStringField("language", device.getLanguage());
    }
    if (device.hasCarrier()) {
        gen.writeStringField("carrier", device.getCarrier());
    }
    if (device.hasConnectiontype()) {
        gen.writeNumberField("connectiontype", device.getConnectiontype().getNumber());
    }
    if (device.hasIfa()) {
        gen.writeStringField("ifa", device.getIfa());
    }
    if (device.hasDidsha1()) {
        gen.writeStringField("didsha1", device.getDidsha1());
    }
    if (device.hasDidmd5()) {
        gen.writeStringField("didmd5", device.getDidmd5());
    }
    if (device.hasDpidsha1()) {
        gen.writeStringField("dpidsha1", device.getDpidsha1());
    }
    if (device.hasDpidmd5()) {
        gen.writeStringField("dpidmd5", device.getDpidmd5());
    }
    if (device.hasMacsha1()) {
        gen.writeStringField("macsha1", device.getMacsha1());
    }
    if (device.hasMacmd5()) {
        gen.writeStringField("macmd5", device.getMacmd5());
    }
    if (device.hasGeofetch()) {
        writeIntBoolField("geofetch", device.getGeofetch(), gen);
    }
}

From source file:de.ks.flatadocdb.defaults.json.RelationCollectionPropertyWriter.java

@Override
public void serializeAsField(Object bean, JsonGenerator gen, SerializerProvider prov) throws Exception {
    Object value = (_accessorMethod == null) ? _field.get(bean) : _accessorMethod.invoke(bean);
    if (value instanceof Collection) {
        Collection<String> ids;
        if (value instanceof List) {
            ids = new ArrayList<>();
        } else {//  w w  w . j a v  a2s .  co  m
            ids = new HashSet<>();
        }
        for (Object object : ((Collection) value)) {
            if (object != null) {
                EntityDescriptor entityDescriptor = metaModel.getEntityDescriptor(object.getClass());
                String id = entityDescriptor.getId(object);
                log.trace("Replaced object {} of collection by relation id {}.", object, id);
                ids.add(id);
            }
        }
        value = ids;
    } else if (value != null) {
        EntityDescriptor entityDescriptor = metaModel.getEntityDescriptor(value.getClass());
        String id = entityDescriptor.getId(value);
        value = id;
        log.trace("Replaced single object {} by relation id {}.", value, id);
    }
    // Null handling is bit different, check that first
    if (value == null) {
        if (_nullSerializer != null) {
            gen.writeFieldName(_name);
            _nullSerializer.serialize(null, gen, prov);
        }
        return;
    }
    // then find serializer to use
    JsonSerializer<Object> ser = _serializer;
    if (ser == null) {
        Class<?> cls = value.getClass();
        PropertySerializerMap m = _dynamicSerializers;
        ser = m.serializerFor(cls);
        if (ser == null) {
            ser = _findAndAddDynamic(m, cls, prov);
        }
    }
    // and then see if we must suppress certain values (default, empty)
    if (_suppressableValue != null) {
        if (MARKER_FOR_EMPTY == _suppressableValue) {
            if (ser.isEmpty(prov, value)) {
                return;
            }
        } else if (_suppressableValue.equals(value)) {
            return;
        }
    }
    // For non-nulls: simple check for direct cycles
    if (value == bean) {
        // three choices: exception; handled by call; or pass-through
        if (_handleSelfReference(bean, gen, prov, ser)) {
            return;
        }
    }
    gen.writeFieldName(_name);
    if (_typeSerializer == null) {
        ser.serialize(value, gen, prov);
    } else {
        ser.serializeWithType(value, gen, prov, _typeSerializer);
    }
}

From source file:ijfx.service.overlay.io.OverlaySerializer.java

private void savePolytonOverlay(PolygonOverlay overlay, JsonGenerator jg) throws IOException {
    // {/*from  w w w.ja  v  a  2 s. co m*/
    jg.writeStartObject();
    int numDimension = overlay.numDimensions();

    // "ovl_type":"polygon"
    jg.writeStringField(JsonOverlayToken.OVERLAY_TYPE, JsonOverlayToken.POLYGON_OVERLAY);

    // "points":[

    int vertexCount = overlay.getRegionOfInterest().getVertexCount();

    double[] xpoints = IntStream.range(0, vertexCount)
            .mapToDouble(i -> overlay.getRegionOfInterest().getVertex(i).getDoublePosition(0)).toArray();
    double[] ypoints = IntStream.range(0, vertexCount)
            .mapToDouble(i -> overlay.getRegionOfInterest().getVertex(i).getDoublePosition(1)).toArray();

    writeDoubleArray(jg, "xpoints", xpoints);
    writeDoubleArray(jg, "ypoints", ypoints);
    // }

    ColorRGB fcolor = overlay.getFillColor();
    ColorRGB lcolor = overlay.getLineColor();

    Integer[] fill_color = { fcolor.getRed(), fcolor.getGreen(), fcolor.getBlue() };
    Integer[] line_color = { lcolor.getRed(), lcolor.getGreen(), lcolor.getBlue() };

    double width = overlay.getLineWidth();

    writeNumberArray(jg, JsonOverlayToken.FILL_COLOR, fill_color);
    writeNumberArray(jg, JsonOverlayToken.LINE_COLOR, line_color);

    jg.writeFieldName(JsonOverlayToken.LINE_WIDTH);
    jg.writeNumber(width);

    jg.writeEndObject();

}

From source file:org.sead.repositories.reference.RefRepository.java

protected static void generateIndex(InputStream ro, File descFile, File indexFile)
        throws JsonParseException, IOException {

    log.debug("Generating desc and index files");
    JsonFactory f = new MappingJsonFactory(); // reading
    JsonParser jp = f.createParser(ro);//  w  w  w .j  a  va2  s  .  co m

    JsonGenerator generator = new JsonFactory().createGenerator(descFile, JsonEncoding.UTF8);

    JsonToken current;

    current = jp.nextToken();

    report(jp, current);
    while ((current = jp.nextToken()) != null) {
        if (current.equals(JsonToken.FIELD_NAME)) {
            String fName = jp.getText();
            if (fName.equals("describes")) {
                log.trace("describes");
                while (((current = jp.nextToken()) != null)) {
                    if (jp.isExpectedStartObjectToken()) {
                        generator.setCodec(new ObjectMapper());
                        generator.useDefaultPrettyPrinter();

                        generator.writeStartObject();

                        while (((current = jp.nextToken()) != JsonToken.END_OBJECT)) {
                            if (current != JsonToken.FIELD_NAME) {
                                log.warn("Unexpected Token!");
                                report(jp, current);

                            } else {
                                report(jp, current);
                                String name = jp.getText();
                                current = jp.nextToken(); // Get to start of
                                // value
                                if (!name.equals("aggregates")) {
                                    log.trace("Writing: " + name);
                                    generator.writeFieldName(name);
                                    generator.writeTree(jp.readValueAsTree());
                                } else {
                                    report(jp, current);
                                    log.trace("Skipping?");
                                    if (current.isStructStart()) {
                                        indexChildren(indexFile, jp);
                                        // jp.skipChildren();
                                    } else {
                                        log.warn("Was Not Struct start!");
                                    }
                                    log.trace("Hit aggregates");

                                }
                            }
                        }

                        generator.writeEndObject();

                        generator.close();
                    }
                }
            }
        }
    }
}

From source file:org.talend.dataprep.schema.xls.serialization.XlsxStreamRunnable.java

/**
 * @see Runnable#run()/*from   ww  w.  java  2s. c o m*/
 */
@Override
public void run() {
    try {
        JsonGenerator generator = jsonFactory.createGenerator(jsonOutput);
        Workbook workbook = StreamingReader.builder() //
                .bufferSize(4096) //
                .rowCacheSize(1) //
                .open(rawContent);
        try {
            Sheet sheet = StringUtils.isEmpty(metadata.getSheetName()) ? //
                    workbook.getSheetAt(0) : workbook.getSheet(metadata.getSheetName());
            generator.writeStartArray();
            for (Row row : sheet) {
                if (limit > 0 && row.getRowNum() > limit) {
                    break;
                }
                if (!XlsSerializer.isHeaderLine(row.getRowNum(), metadata.getRowMetadata().getColumns())) {
                    generator.writeStartObject();
                    // data quality Analyzer doesn't like to not have all columns even if we don't have any values
                    // so create so field with empty value otherwise we get exceptions
                    int i = 0;
                    for (ColumnMetadata columnMetadata : metadata.getRowMetadata().getColumns()) {
                        Cell cell = row.getCell(i);
                        String cellValue = cell == null ? null : cell.getStringCellValue(); // StringUtils.EMPTY
                        generator.writeFieldName(columnMetadata.getId());
                        if (cellValue != null) {
                            generator.writeString(cellValue);
                        } else {
                            generator.writeNull();
                        }
                        i++;
                    }
                    generator.writeEndObject();
                }
            }
            generator.writeEndArray();
            generator.flush();
        } finally {
            workbook.close();
        }
    } catch (Exception e) {
        // Consumer may very well interrupt consumption of stream (in case of limit(n) use for sampling).
        // This is not an issue as consumer is allowed to partially consumes results, it's up to the
        // consumer to ensure data it consumed is consistent.
        LOG.debug("Unable to continue serialization for {}. Skipping remaining content.", metadata.getId(), e);
    } finally {
        try {
            jsonOutput.close();
        } catch (IOException e) {
            LOG.error("Unable to close output", e);
        }
    }
}

From source file:de.fraunhofer.iosb.ilt.sta.serialize.EntitySerializer.java

protected void serializeFieldCustomized(Entity entity, JsonGenerator gen, BeanPropertyDefinition property,
        List<BeanPropertyDefinition> properties, CustomSerialization annotation) throws Exception {
    // check if encoding field is present in current bean
    // get calue//from   w  w w. j  a  v  a2 s  .  co  m
    // call CustomSerializationManager
    Optional<BeanPropertyDefinition> encodingProperty = properties.stream()
            .filter(p -> p.getName().equals(annotation.encoding())).findFirst();
    if (!encodingProperty.isPresent()) {
        // TODO use more specific exception type
        throw new Exception("can not serialize instance of class '" + entity.getClass() + "'! \n"
                + "Reason: trying to use custom serialization for field '" + property.getName()
                + "' but field '" + annotation.encoding() + "' specifying enconding is not present!");
    }
    Object value = encodingProperty.get().getAccessor().getValue(entity);
    String encodingType = null;
    if (value != null) {
        encodingType = value.toString();
    }
    String customJson = CustomSerializationManager.getInstance().getSerializer(encodingType)
            .serialize(property.getAccessor().getValue(entity));
    if (customJson != null && !customJson.isEmpty()) {
        gen.writeFieldName(property.getName());
        gen.writeRawValue(customJson);
    }
}

From source file:de.fraunhofer.iosb.ilt.sta.serialize.EntitySerializer.java

@Override
public void serialize(Entity entity, JsonGenerator gen, SerializerProvider serializers)
        throws IOException, JsonProcessingException {
    gen.writeStartObject();//  w ww . jav a 2 s. com
    try {
        BasicBeanDescription beanDescription = serializers.getConfig()
                .introspect(serializers.constructType(entity.getClass()));
        List<BeanPropertyDefinition> properties = beanDescription.findProperties();
        for (BeanPropertyDefinition property : properties) {
            // 0. check if it should be serialized
            if (selectedProperties != null) {
                if (!selectedProperties.contains(property.getName())) {
                    continue;
                }
            }
            // 1. is it a NavigableElement?
            if (NavigableElement.class.isAssignableFrom(property.getAccessor().getRawType())) {
                Object rawValue = property.getAccessor().getValue(entity);
                if (rawValue != null) {
                    NavigableElement value = (NavigableElement) rawValue;
                    // If navigation link set, output navigation link.
                    if (value.getNavigationLink() != null && !value.getNavigationLink().isEmpty()) {
                        gen.writeFieldName(property.getName() + "@iot.navigationLink");
                        gen.writeString(value.getNavigationLink());
                    }
                    // If object should not be exported, skip any further processing.
                    if (!value.isExportObject()) {
                        continue;
                    }
                }
            }
            // 2. check if property has CustomSerialization annotation -> use custom serializer
            Annotation annotation = property.getAccessor().getAnnotation(CustomSerialization.class);
            if (annotation != null) {
                serializeFieldCustomized(entity, gen, property, properties, (CustomSerialization) annotation);
            } else {
                serializeField(entity, gen, serializers, beanDescription, property);
            }
            // 3. check if property is EntitySet than eventually write count
            if (EntitySet.class.isAssignableFrom(property.getAccessor().getRawType())) {
                Object rawValue = property.getAccessor().getValue(entity);
                if (rawValue != null) {
                    EntitySet set = (EntitySet) rawValue;
                    long count = set.getCount();
                    if (count >= 0) {
                        gen.writeNumberField(property.getName() + "@iot.count", count);
                    }
                    String nextLink = set.getNextLink();
                    if (nextLink != null) {
                        gen.writeStringField(property.getName() + "@iot.nextLink", nextLink);
                    }
                }
            }
        }
    } catch (Exception e) {
        LOGGER.error("could not serialize Entity", e);
        throw new IOException("could not serialize Entity", e);
    } finally {
        gen.writeEndObject();
    }
}

From source file:com.google.openrtb.json.OpenRtbJsonWriter.java

protected void writeBidRequestFields(BidRequest req, JsonGenerator gen) throws IOException {
    gen.writeStringField("id", req.getId());
    if (checkRequired(req.getImpCount())) {
        gen.writeArrayFieldStart("imp");
        for (Imp imp : req.getImpList()) {
            writeImp(imp, gen);//from  www.  j ava  2 s  . c o  m
        }
        gen.writeEndArray();
    }
    switch (req.getDistributionchannelOneofCase()) {
    case SITE:
        gen.writeFieldName("site");
        writeSite(req.getSite(), gen);
        break;
    case APP:
        gen.writeFieldName("app");
        writeApp(req.getApp(), gen);
        break;
    case DISTRIBUTIONCHANNELONEOF_NOT_SET:
        checkRequired(false);
    }
    if (req.hasDevice()) {
        gen.writeFieldName("device");
        writeDevice(req.getDevice(), gen);
    }
    if (req.hasUser()) {
        gen.writeFieldName("user");
        writeUser(req.getUser(), gen);
    }
    if (req.hasTest()) {
        writeIntBoolField("test", req.getTest(), gen);
    }
    if (req.hasAt()) {
        gen.writeNumberField("at", req.getAt().getNumber());
    }
    if (req.hasTmax()) {
        gen.writeNumberField("tmax", req.getTmax());
    }
    writeStrings("wseat", req.getWseatList(), gen);
    if (req.hasAllimps()) {
        writeIntBoolField("allimps", req.getAllimps(), gen);
    }
    writeStrings("cur", req.getCurList(), gen);
    writeContentCategories("bcat", req.getBcatList(), gen);
    writeStrings("badv", req.getBadvList(), gen);
    if (req.hasRegs()) {
        gen.writeFieldName("regs");
        writeRegs(req.getRegs(), gen);
    }
    writeStrings("bapp", req.getBappList(), gen);
}