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

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

Introduction

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

Prototype

public void writeStringField(String fieldName, String value) throws IOException, JsonGenerationException 

Source Link

Document

Convenience method for outputting a field entry ("member") that has a String value.

Usage

From source file:pl.selvin.android.syncframework.content.TableInfo.java

public void GetChanges(SQLiteDatabase db, JsonGenerator gen, ArrayList<TableInfo> notifyTableInfo)
        throws IOException {
    String[] cols = new String[columns.length + 3];
    int i = 0;//from  w ww. j a v a2s .  c  om
    for (; i < columns.length; i++)
        cols[i] = columns[i].name;
    cols[i] = _.uri;
    cols[i + 1] = _.tempId;
    cols[i + 2] = _.isDeleted;
    Cursor c = db.query(name, cols, _.isDirtyP, new String[] { "1" }, null, null, null);
    //to fix startPos  > actual rows for large cursors db operations should be done after cursor is closed ...
    final ArrayList<OperationHolder> operations = new ArrayList<OperationHolder>();
    if (c.moveToFirst()) {
        if (!notifyTableInfo.contains(this))
            notifyTableInfo.add(this);
        do {

            gen.writeStartObject();
            gen.writeObjectFieldStart(_.__metadata);
            gen.writeBooleanField(_.isDirty, true);
            gen.writeStringField(_.type, scope_name);
            //Log.d("before", scope_name + ":" + c.getLong(i + 3));
            String uri = c.getString(i);
            //Log.d("after", scope_name + ":" + c.getLong(i + 3));
            if (uri == null) {
                gen.writeStringField(_.tempId, c.getString(i + 1));
            } else {
                gen.writeStringField(_.uri, uri);
                final ContentValues update = new ContentValues(1);
                update.put(_.isDirty, 0);
                operations.add(new OperationHolder(name, OperationHolder.UPDATE, update, uri));
            }
            boolean isDeleted = c.getInt(i + 2) == 1;
            if (isDeleted) {
                gen.writeBooleanField(_.isDeleted, true);
                gen.writeEndObject();// meta
                operations.add(new OperationHolder(name, OperationHolder.DELETE, null, uri));
            } else {
                gen.writeEndObject();// meta
                for (i = 0; i < columns.length; i++) {
                    if (columns[i].nullable && c.isNull(i)) {
                        gen.writeNullField(columns[i].name);
                    } else {
                        switch (columns[i].type) {
                        case ColumnType.BLOB:
                            gen.writeBinaryField(columns[i].name, c.getBlob(i));
                            break;
                        case ColumnType.BOOLEAN:
                            gen.writeBooleanField(columns[i].name, c.getLong(i) == 1);
                            break;
                        case ColumnType.INTEGER:
                            gen.writeNumberField(columns[i].name, c.getLong(i));
                            break;
                        case ColumnType.DATETIME:
                            try {
                                gen.writeStringField(columns[i].name,
                                        String.format(msdate, sdf.parse(c.getString(i)).getTime()));
                            } catch (Exception e) {
                                if (BuildConfig.DEBUG) {
                                    Log.e("ListSync", e.getLocalizedMessage());
                                }
                            }
                            break;
                        case ColumnType.NUMERIC:
                            gen.writeNumberField(columns[i].name, c.getDouble(i));
                            break;
                        default:
                            gen.writeStringField(columns[i].name, c.getString(i));
                            break;
                        }
                    }
                }
            }
            gen.writeEndObject(); // end of row
        } while (c.moveToNext());
    }
    c.close();
    for (OperationHolder operation : operations)
        operation.execute(db);
}

From source file:org.jmxtrans.embedded.output.CopperEggWriter.java

public void cue_serialize(@Nonnull Iterable<QueryResult> counters, @Nonnull OutputStream out)
        throws IOException {
    int first = 0;
    long time = 0;
    String myID = null;//  w ww  .ja v a 2 s.c o m
    JsonGenerator g = jsonFactory.createGenerator(out, JsonEncoding.UTF8);

    for (QueryResult counter : counters) {
        if (0 == first) {
            time = counter.getEpoch(TimeUnit.SECONDS);
            myID = counter.getType();
            first = 1;
            g.writeStartObject();
            g.writeStringField("identifier", myID);
            g.writeNumberField("timestamp", time);
            g.writeObjectFieldStart("values");
        }
        if (counter.getValue() instanceof Integer) {
            g.writeNumberField(counter.getName(), (Integer) counter.getValue());
        } else if (counter.getValue() instanceof Long) {
            g.writeNumberField(counter.getName(), (Long) counter.getValue());
        } else if (counter.getValue() instanceof Float) {
            g.writeNumberField(counter.getName(), (Float) counter.getValue());
        } else if (counter.getValue() instanceof Double) {
            g.writeNumberField(counter.getName(), (Double) counter.getValue());
        }
    }
    g.writeEndObject();
    g.writeEndObject();
    g.flush();
    g.close();
}

From source file:com.turn.splicer.Config.java

public void writeAsJson(JsonGenerator jgen) throws IOException {
    if (properties == null) {
        jgen.writeStartObject();//from  w w w .  j  av a 2 s.  c  o  m
        jgen.writeEndObject();
        return;
    }

    TreeMap<String, String> map = new TreeMap<>();
    for (Map.Entry<Object, Object> e : properties.entrySet()) {
        map.put(String.valueOf(e.getKey()), String.valueOf(e.getValue()));
    }

    InputStream is = getClass().getClassLoader().getResourceAsStream(VERSION_FILE);
    if (is != null) {
        LOG.debug("Loaded {} bytes of version file configuration", is.available());
        Properties versionProps = new Properties();
        versionProps.load(is);
        for (Map.Entry<Object, Object> e : versionProps.entrySet()) {
            map.put(String.valueOf(e.getKey()), String.valueOf(e.getValue()));
        }
    } else {
        LOG.error("No version file found on classpath. VERSION_FILE={}", VERSION_FILE);
    }

    jgen.writeStartObject();
    for (Map.Entry<String, String> e : map.entrySet()) {
        if (e.getValue().indexOf(',') > 0) {
            splitList(e.getKey(), e.getValue(), jgen);
        } else {
            jgen.writeStringField(e.getKey(), e.getValue());
        }
    }
    jgen.writeEndObject();
}

From source file:de.escalon.hypermedia.spring.hydra.LinkListSerializer.java

private void writeHydraVariableMapping(JsonGenerator jgen, @Nullable ActionDescriptor annotatedParameters,
        Collection<String> variableNames) throws IOException {
    if (annotatedParameters != null) {
        for (String variableName : variableNames) {
            // TODO: find also @Input
            ActionInputParameter annotatedParameter = annotatedParameters.getActionInputParameter(variableName);
            // TODO access @Input parameter, too
            // only unsatisfied parameters become hydra variables
            if (annotatedParameter != null && annotatedParameter.getValue() == null) {
                jgen.writeStartObject();
                jgen.writeStringField("@type", "hydra:IriTemplateMapping");
                jgen.writeStringField("hydra:variable", variableName);
                jgen.writeBooleanField("hydra:required", annotatedParameter.isRequired());
                jgen.writeStringField("hydra:property", getExposedPropertyOrParamName(annotatedParameter));
                jgen.writeEndObject();//  www . j  av a2  s  . co  m
            }
        }
    }
}

From source file:com.tage.calcite.adapter.druid.DruidQuery.java

private QuerySpec getQuery(RelDataType rowType, RexNode filter, List<RexNode> projects,
        ImmutableBitSet groupSet, List<AggregateCall> aggCalls, List<String> aggNames) {
    QueryType queryType = QueryType.SELECT;
    final Translator translator = new Translator(druidTable, rowType);
    List<String> fieldNames = rowType.getFieldNames();

    Json jsonFilter = null;/*from w ww  .jav  a2s .co m*/
    if (filter != null) {
        jsonFilter = translator.translateFilter(filter);
        translator.metrics.clear();
        translator.dimensions.clear();
    }

    if (projects != null) {
        final ImmutableList.Builder<String> builder = ImmutableList.builder();
        for (RexNode project : projects) {
            builder.add(translator.translate(project));
        }
        fieldNames = builder.build();
    }

    final List<String> dimensions = new ArrayList<>();
    final List<JsonAggregation> aggregations = new ArrayList<>();

    if (groupSet != null) {
        assert aggCalls != null;
        assert aggNames != null;
        assert aggCalls.size() == aggNames.size();
        queryType = QueryType.GROUP_BY;

        final ImmutableList.Builder<String> builder = ImmutableList.builder();
        for (int groupKey : groupSet) {
            final String s = fieldNames.get(groupKey);
            dimensions.add(s);
            builder.add(s);
        }
        for (Pair<AggregateCall, String> agg : Pair.zip(aggCalls, aggNames)) {
            final JsonAggregation jsonAggregation = getJsonAggregation(fieldNames, agg.right, agg.left);
            aggregations.add(jsonAggregation);
            builder.add(jsonAggregation.name);
        }
        fieldNames = builder.build();
    } else {
        assert aggCalls == null;
        assert aggNames == null;
    }

    final StringWriter sw = new StringWriter();
    final JsonFactory factory = new JsonFactory();
    try {
        final JsonGenerator generator = factory.createGenerator(sw);

        switch (queryType) {
        case GROUP_BY:
            generator.writeStartObject();

            if (aggregations.isEmpty()) {
                // Druid requires at least one aggregation, otherwise gives:
                //   Must have at least one AggregatorFactory
                aggregations.add(new JsonAggregation("longSum", "unit_sales", "unit_sales"));
            }

            generator.writeStringField("queryType", "groupBy");
            generator.writeStringField("dataSource", druidTable.dataSource);
            generator.writeStringField("granularity", "all");
            writeField(generator, "dimensions", dimensions);
            writeFieldIf(generator, "limitSpec", null);
            writeFieldIf(generator, "filter", jsonFilter);
            writeField(generator, "aggregations", aggregations);
            writeFieldIf(generator, "postAggregations", null);
            writeField(generator, "intervals", druidTable.intervals);
            writeFieldIf(generator, "having", null);

            generator.writeEndObject();
            break;

        case SELECT:
            generator.writeStartObject();

            generator.writeStringField("queryType", "select");
            generator.writeStringField("dataSource", druidTable.dataSource);
            generator.writeStringField("descending", "false");
            writeField(generator, "intervals", druidTable.intervals);
            writeFieldIf(generator, "filter", jsonFilter);
            writeField(generator, "dimensions", translator.dimensions);
            writeField(generator, "metrics", translator.metrics);
            generator.writeStringField("granularity", "all");

            generator.writeFieldName("pagingSpec");
            generator.writeStartObject();
            final int fetch = CalciteConnectionProperty.DRUID_FETCH.wrap(new Properties()).getInt();
            generator.writeNumberField("threshold", fetch);
            generator.writeEndObject();

            generator.writeEndObject();
            break;

        default:
            throw new AssertionError("unknown query type " + queryType);
        }

        generator.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return new QuerySpec(queryType, sw.toString(), fieldNames);
}

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

protected void clientLinks(final Linked linked, final JsonGenerator jgen)
        throws IOException, EdmPrimitiveTypeException {

    final Map<String, List<String>> entitySetLinks = new HashMap<String, List<String>>();
    for (Link link : linked.getNavigationLinks()) {
        for (Annotation annotation : link.getAnnotations()) {
            valuable(jgen, annotation, link.getTitle() + "@" + annotation.getTerm());
        }//w ww  . j ava 2 s .  c o  m

        if (isEntitySetNavigation(link)) {
            final List<String> uris;
            if (entitySetLinks.containsKey(link.getTitle())) {
                uris = entitySetLinks.get(link.getTitle());
            } else {
                uris = new ArrayList<String>();
                entitySetLinks.put(link.getTitle(), uris);
            }
            if (StringUtils.isNotBlank(link.getHref())) {
                uris.add(link.getHref());
            }
        } else {
            if (StringUtils.isNotBlank(link.getHref())) {
                jgen.writeStringField(link.getTitle() + Constants.JSON_BIND_LINK_SUFFIX, link.getHref());
            }
        }

        if (link.getInlineEntity() != null) {
            jgen.writeFieldName(link.getTitle());
            new JsonEntitySerializer(serverMode, contentType).doSerialize(link.getInlineEntity(), jgen);
        } else if (link.getInlineEntitySet() != null) {
            jgen.writeArrayFieldStart(link.getTitle());
            final JsonEntitySerializer entitySerializer = new JsonEntitySerializer(serverMode, contentType);
            for (Entity subEntry : link.getInlineEntitySet().getEntities()) {
                entitySerializer.doSerialize(subEntry, jgen);
            }
            jgen.writeEndArray();
        }
    }
    for (Map.Entry<String, List<String>> entitySetLink : entitySetLinks.entrySet()) {
        if (!entitySetLink.getValue().isEmpty()) {
            jgen.writeArrayFieldStart(entitySetLink.getKey() + Constants.JSON_BIND_LINK_SUFFIX);
            for (String uri : entitySetLink.getValue()) {
                jgen.writeString(uri);
            }
            jgen.writeEndArray();
        }
    }
}

From source file:org.eclipse.winery.repository.resources.entitytypes.relationshiptypes.VisualAppearanceResource.java

@GET
@RestDoc(methodDescription = "@return JSON object to be used at jsPlumb.registerConnectionType('NAME', <data>)")
@Produces(MediaType.APPLICATION_JSON)//from   w  w w  . ja  va  2s. com
public Response getConnectionTypeForJsPlumbData() {
    JsonFactory jsonFactory = new JsonFactory();
    StringWriter sw = new StringWriter();
    try {
        JsonGenerator jg = jsonFactory.createGenerator(sw);
        jg.writeStartObject();

        jg.writeFieldName("connector");
        jg.writeString("Flowchart");

        jg.writeFieldName("paintStyle");
        jg.writeStartObject();
        jg.writeFieldName("lineWidth");
        jg.writeNumber(this.getLineWidth());
        jg.writeFieldName("strokeStyle");
        jg.writeObject(this.getColor());
        String dash = this.getDash();
        if (!StringUtils.isEmpty(dash)) {
            String dashStyle = null;
            switch (dash) {
            case "dotted":
                dashStyle = "1 5";
                break;
            case "dotted2":
                dashStyle = "3 4";
                break;
            case "plain":
                // default works
                // otherwise, "1 0" can be used
                break;
            }
            if (dashStyle != null) {
                jg.writeStringField("dashstyle", dashStyle);
            }
        }
        jg.writeEndObject();

        jg.writeFieldName("hoverPaintStyle");
        jg.writeStartObject();
        jg.writeFieldName("strokeStyle");
        jg.writeObject(this.getHoverColor());
        jg.writeEndObject();

        // BEGIN: Overlays

        jg.writeFieldName("overlays");
        jg.writeStartArray();

        // source arrow head
        String head = this.getSourceArrowHead();
        if (!head.equals("none")) {
            jg.writeStartArray();
            jg.writeString(head);

            jg.writeStartObject();

            jg.writeFieldName("location");
            jg.writeNumber(0);

            // arrow should point towards the node and not away from it
            jg.writeFieldName("direction");
            jg.writeNumber(-1);

            jg.writeFieldName("width");
            jg.writeNumber(20);

            jg.writeFieldName("length");
            jg.writeNumber(12);

            jg.writeEndObject();
            jg.writeEndArray();
        }

        // target arrow head
        head = this.getTargetArrowHead();
        if (!head.equals("none")) {
            jg.writeStartArray();
            jg.writeString(head);
            jg.writeStartObject();
            jg.writeFieldName("location");
            jg.writeNumber(1);
            jg.writeFieldName("width");
            jg.writeNumber(20);
            jg.writeFieldName("length");
            jg.writeNumber(12);
            jg.writeEndObject();
            jg.writeEndArray();
        }

        // Type in brackets on the arrow
        jg.writeStartArray();
        jg.writeString("Label");
        jg.writeStartObject();
        jg.writeStringField("id", "label");
        //jg.writeStringField("label", "(" + ((RelationshipTypeResource) this.res).getName() + ")");
        jg.writeStringField("label", "");
        jg.writeStringField("cssClass", "relationshipTypeLabel");
        jg.writeFieldName("location");
        jg.writeNumber(0.5);
        jg.writeEndObject();
        jg.writeEndArray();

        jg.writeEndArray();

        // END: Overlays

        jg.writeEndObject();

        jg.close();
    } catch (Exception e) {
        VisualAppearanceResource.logger.error(e.getMessage(), e);
        return Response.status(Status.INTERNAL_SERVER_ERROR).entity(e).build();
    }
    String res = sw.toString();
    return Response.ok(res).build();
}

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

protected void writeSeatBidFields(SeatBid seatbid, JsonGenerator gen) throws IOException {
    if (seatbid.getBidCount() != 0) {
        gen.writeArrayFieldStart("bid");
        for (Bid bid : seatbid.getBidList()) {
            writeBid(bid, gen);//from w ww  . j  a v a  2s. c o m
        }
        gen.writeEndArray();
    }
    if (seatbid.hasSeat()) {
        gen.writeStringField("seat", seatbid.getSeat());
    }
    if (seatbid.hasGroup()) {
        writeIntBoolField("group", seatbid.getGroup(), gen);
    }
}

From source file:com.streamsets.datacollector.http.JMXJsonServlet.java

/**
 * Process a GET request for the specified resource.
 *
 * @param request/*from w ww. j  a  va 2s .  c om*/
 *          The servlet request we are processing
 * @param response
 *          The servlet response we are creating
 */
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) {
    try {
        JsonGenerator jg = null;
        String jsonpcb = null;
        PrintWriter writer = null;
        try {
            writer = response.getWriter();

            // "callback" parameter implies JSONP outpout
            jsonpcb = request.getParameter(CALLBACK_PARAM);
            if (jsonpcb != null) {
                response.setContentType("application/javascript; charset=utf8");
                writer.write(jsonpcb + "(");
            } else {
                response.setContentType("application/json; charset=utf8");
            }

            jg = jsonFactory.createGenerator(writer);
            jg.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET);
            jg.useDefaultPrettyPrinter();
            jg.writeStartObject();

            // query per mbean attribute
            String getmethod = request.getParameter("get");
            if (getmethod != null) {
                String[] splitStrings = getmethod.split("\\:\\:");
                if (splitStrings.length != 2) {
                    jg.writeStringField("result", "ERROR");
                    jg.writeStringField("message", "query format is not as expected.");
                    jg.flush();
                    response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
                    return;
                }
                listBeans(jg, new ObjectName(splitStrings[0]), splitStrings[1], response);
                return;
            }

            // query per mbean
            String qry = request.getParameter("qry");
            if (qry == null) {
                qry = "*:*";
            }
            listBeans(jg, new ObjectName(qry), null, response);
        } finally {
            if (jg != null) {
                jg.close();
            }
            if (jsonpcb != null) {
                writer.write(");");
            }
            if (writer != null) {
                writer.close();
            }
        }
    } catch (IOException e) {

        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    } catch (MalformedObjectNameException e) {

        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
    }
}