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

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

Introduction

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

Prototype

public final void writeArrayFieldStart(String fieldName) throws IOException, JsonGenerationException 

Source Link

Document

Convenience method for outputting a field entry ("member") (that will contain a JSON Array value), and the START_ARRAY marker.

Usage

From source file:Service.java

public static void main(String[] args) {

    StringWriter sw = new StringWriter();
    try {/*from w ww .ja va2 s.com*/
        JsonGenerator g = factory.createGenerator(sw);
        g.writeStartObject();
        g.writeNumberField("code", 200);
        g.writeArrayFieldStart("languages");
        for (Language l : Languages.get()) {
            g.writeStartObject();
            g.writeStringField("name", l.getName());
            g.writeStringField("locale", l.getLocaleWithCountryAndVariant().toString());
            g.writeEndObject();
        }
        g.writeEndArray();
        g.writeEndObject();
        g.flush();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    String languagesResponse = sw.toString();

    String errorResponse = codeResponse(500);
    String okResponse = codeResponse(200);

    Scanner sc = new Scanner(System.in);
    while (sc.hasNextLine()) {
        try {
            String line = sc.nextLine();
            JsonParser p = factory.createParser(line);
            String cmd = "";
            String text = "";
            String language = "";
            while (p.nextToken() != JsonToken.END_OBJECT) {
                String name = p.getCurrentName();
                if ("command".equals(name)) {
                    p.nextToken();
                    cmd = p.getText();
                }
                if ("text".equals(name)) {
                    p.nextToken();
                    text = p.getText();
                }
                if ("language".equals(name)) {
                    p.nextToken();
                    language = p.getText();
                }
            }
            p.close();

            if ("check".equals(cmd)) {
                sw = new StringWriter();
                JsonGenerator g = factory.createGenerator(sw);
                g.writeStartObject();
                g.writeNumberField("code", 200);
                g.writeArrayFieldStart("matches");
                for (RuleMatch match : new JLanguageTool(Languages.getLanguageForShortName(language))
                        .check(text)) {
                    g.writeStartObject();

                    g.writeNumberField("offset", match.getFromPos());

                    g.writeNumberField("length", match.getToPos() - match.getFromPos());

                    g.writeStringField("message", substituteSuggestion(match.getMessage()));

                    if (match.getShortMessage() != null) {
                        g.writeStringField("shortMessage", substituteSuggestion(match.getShortMessage()));
                    }

                    g.writeArrayFieldStart("replacements");
                    for (String replacement : match.getSuggestedReplacements()) {
                        g.writeString(replacement);
                    }
                    g.writeEndArray();

                    Rule rule = match.getRule();

                    g.writeStringField("ruleId", rule.getId());

                    if (rule instanceof AbstractPatternRule) {
                        String subId = ((AbstractPatternRule) rule).getSubId();
                        if (subId != null) {
                            g.writeStringField("ruleSubId", subId);
                        }
                    }

                    g.writeStringField("ruleDescription", rule.getDescription());

                    g.writeStringField("ruleIssueType", rule.getLocQualityIssueType().toString());

                    if (rule.getUrl() != null) {
                        g.writeArrayFieldStart("ruleUrls");
                        g.writeString(rule.getUrl().toString());
                        g.writeEndArray();
                    }

                    Category category = rule.getCategory();
                    CategoryId catId = category.getId();
                    if (catId != null) {
                        g.writeStringField("ruleCategoryId", catId.toString());

                        g.writeStringField("ruleCategoryName", category.getName());
                    }

                    g.writeEndObject();
                }
                g.writeEndArray();
                g.writeEndObject();
                g.flush();
                System.out.println(sw.toString());
            } else if ("languages".equals(cmd)) {
                System.out.println(languagesResponse);
            } else if ("quit".equals(cmd)) {
                System.out.println(okResponse);
                return;
            } else {
                System.out.println(errorResponse);
            }
        } catch (Exception e) {
            System.out.println(errorResponse);
        }
    }
}

From source file:org.n52.restfulwpsproxy.serializer.json.AbstractWPSJsonModule.java

protected static final void writeArrayOfObjects(String fieldName, Object[] objects, JsonGenerator jg)
        throws IOException {
    jg.writeArrayFieldStart(fieldName);
    for (Object o : objects) {
        jg.writeObject(o);/* w  w  w. j  a  va2 s  .  c o m*/
    }
    jg.writeEndArray();
}

From source file:org.n52.restfulwpsproxy.serializer.json.AbstractWPSJsonModule.java

protected static final void writeArrayOfStrings(String fieldName, String[] strings, JsonGenerator jg)
        throws IOException {
    jg.writeArrayFieldStart(fieldName);
    for (String s : strings) {
        jg.writeString(s);/*  www .j  av  a 2s . c  o m*/
    }
    jg.writeEndArray();
}

From source file:org.mashti.jetson.util.JsonGeneratorUtil.java

/**
 * Writes the given {@code values} as a JSON array with the given field name and serialises each value as a provided type.
 * An {@link ObjectMapper} must be present as the {@code generator}'s {@link JsonGenerator#getCodec() codec}.
 * For each value in the given {@code values}, a type must be provided under the same index in {@code value_types}.
 * This method supports parameterised types.
 *
 * @param generator the JSON generator//from  w  w w.  j a va  2s.  com
 * @param field_name the field name of the JSON array
 * @param value_types the types of the values
 * @param values the values
 * @throws IOException Signals that an I/O exception has occurred.
 */
public static void writeValuesAs(final JsonGenerator generator, final String field_name,
        final Type[] value_types, final Object[] values) throws IOException {

    generator.writeArrayFieldStart(field_name);
    if (values != null && values.length > 0) {
        final ObjectMapper mapper = (ObjectMapper) generator.getCodec();
        int i = 0;
        for (final Object value : values) {
            final Type value_type = value_types[i++];
            final ObjectWriter writer = mapper.writerWithType(JsonParserUtil.toTypeReference(value_type));
            writer.writeValue(generator, value);
        }
    }
    generator.writeEndArray();
}

From source file:net.echinopsii.ariane.community.core.directory.wat.json.ds.organisational.EnvironmentJSON.java

public final static void manyEnvironments2JSON(HashSet<Environment> environments,
        ByteArrayOutputStream outStream) throws IOException {
    JsonGenerator jgenerator = DirectoryBootstrap.getjFactory().createGenerator(outStream, JsonEncoding.UTF8);
    jgenerator.writeStartObject();/*from www .j a v a 2  s.  com*/
    jgenerator.writeArrayFieldStart("environments");
    Iterator<Environment> iter = environments.iterator();
    while (iter.hasNext()) {
        Environment current = iter.next();
        EnvironmentJSON.environment2JSON(current, jgenerator);
    }
    jgenerator.writeEndArray();
    jgenerator.writeEndObject();
    jgenerator.close();
}

From source file:net.echinopsii.ariane.community.core.directory.wat.json.ds.technical.system.OSTypeJSON.java

public final static void manyOSTypes2JSON(HashSet<OSType> osTypes, ByteArrayOutputStream outStream)
        throws IOException {
    JsonGenerator jgenerator = DirectoryBootstrap.getjFactory().createGenerator(outStream, JsonEncoding.UTF8);
    jgenerator.writeStartObject();/*w w  w.  jav  a  2 s .  co  m*/
    jgenerator.writeArrayFieldStart("osTypes");
    Iterator<OSType> iter = osTypes.iterator();
    while (iter.hasNext()) {
        OSType current = iter.next();
        OSTypeJSON.osType2JSON(current, jgenerator);
    }
    jgenerator.writeEndArray();
    jgenerator.writeEndObject();
    jgenerator.close();
}

From source file:net.echinopsii.ariane.community.core.directory.wat.json.ds.organisational.CompanyJSON.java

public final static void manyCompanies2JSON(HashSet<Company> companies, ByteArrayOutputStream outStream)
        throws IOException {
    JsonGenerator jgenerator = DirectoryBootstrap.getjFactory().createGenerator(outStream, JsonEncoding.UTF8);
    jgenerator.writeStartObject();/*from w  w  w  .j  av  a  2 s  .  c  o  m*/
    jgenerator.writeArrayFieldStart("companies");
    Iterator<Company> iter = companies.iterator();
    while (iter.hasNext()) {
        Company current = iter.next();
        CompanyJSON.company2JSON(current, jgenerator);
    }
    jgenerator.writeEndArray();
    jgenerator.writeEndObject();
    jgenerator.close();
}

From source file:net.echinopsii.ariane.community.core.directory.wat.json.ds.organisational.TeamJSON.java

public final static void manyTeams2JSON(HashSet<Team> teams, ByteArrayOutputStream outStream)
        throws IOException {
    JsonGenerator jgenerator = DirectoryBootstrap.getjFactory().createGenerator(outStream, JsonEncoding.UTF8);
    jgenerator.writeStartObject();/*from   ww w  . jav  a2 s .  c om*/
    jgenerator.writeArrayFieldStart("teams");
    Iterator<Team> iter = teams.iterator();
    while (iter.hasNext()) {
        Team current = iter.next();
        TeamJSON.team2JSON(current, jgenerator);
    }
    jgenerator.writeEndArray();
    jgenerator.writeEndObject();
    jgenerator.close();
}

From source file:net.echinopsii.ariane.community.core.directory.wat.json.ds.organisational.ApplicationJSON.java

public final static void manyApplications2JSON(HashSet<Application> applications,
        ByteArrayOutputStream outStream) throws IOException {
    JsonGenerator jgenerator = DirectoryBootstrap.getjFactory().createGenerator(outStream, JsonEncoding.UTF8);
    jgenerator.writeStartObject();// w  ww  . j  a va  2 s  . com
    jgenerator.writeArrayFieldStart("applications");
    Iterator<Application> iterC = applications.iterator();
    while (iterC.hasNext()) {
        Application current = iterC.next();
        ApplicationJSON.application2JSON(current, jgenerator);
    }
    jgenerator.writeEndArray();
    jgenerator.writeEndObject();
    jgenerator.close();
}

From source file:net.echinopsii.ariane.community.core.directory.wat.json.ds.technical.network.RoutingAreaJSON.java

public final static void manyRoutingAreas2JSON(HashSet<RoutingArea> routingAreas,
        ByteArrayOutputStream outStream) throws IOException {
    JsonGenerator jgenerator = DirectoryBootstrap.getjFactory().createGenerator(outStream, JsonEncoding.UTF8);
    jgenerator.writeStartObject();//from   w  w  w . j  a va 2s.co  m
    jgenerator.writeArrayFieldStart("routingAreas");
    Iterator<RoutingArea> iter = routingAreas.iterator();
    while (iter.hasNext()) {
        RoutingArea current = iter.next();
        RoutingAreaJSON.routingArea2JSON(current, jgenerator);
    }
    jgenerator.writeEndArray();
    jgenerator.writeEndObject();
    jgenerator.close();
}