Example usage for com.fasterxml.jackson.core JsonToken END_OBJECT

List of usage examples for com.fasterxml.jackson.core JsonToken END_OBJECT

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonToken END_OBJECT.

Prototype

JsonToken END_OBJECT

To view the source code for com.fasterxml.jackson.core JsonToken END_OBJECT.

Click Source Link

Document

END_OBJECT is returned when encountering '}' which signals ending of an Object value

Usage

From source file:Service.java

public static void main(String[] args) {

    StringWriter sw = new StringWriter();
    try {/*from   ww w.  j a va  2 s.  c  o m*/
        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:com.netflix.hollow.jsonadapter.util.JsonUtil.java

private static void print(JsonParser parser, JsonToken token, int index, PrintStream out) throws Exception {
    if (index == 0)
        System.out.println("\n\n -----");
    try {/*from  www. java  2  s .  c o  m*/
        while (token != null && token != JsonToken.END_OBJECT) {
            switch (token) {
            case START_ARRAY:
                print(index, String.format("fieldname=%s, token=%s", parser.getCurrentName(), token), out);
                print(parser, parser.nextToken(), index + 1, out);
                break;
            case START_OBJECT:
                print(index, String.format("fieldname=%s, token=%s", parser.getCurrentName(), token), out);
                print(parser, parser.nextToken(), index + 1, out);
                break;
            case VALUE_NUMBER_INT:
                print(index, String.format("fieldname=%s, token=%s, value=%s", parser.getCurrentName(), token,
                        parser.getLongValue()), out);
                break;
            case VALUE_NUMBER_FLOAT:
                print(index, String.format("fieldname=%s, token=%s, value=%s", parser.getCurrentName(), token,
                        parser.getDoubleValue()), out);
                break;
            case VALUE_NULL:
                print(index,
                        String.format("fieldname=%s, token=%s, value=NULL", parser.getCurrentName(), token),
                        out);
                break;
            case VALUE_STRING:
                print(index, String.format("fieldname=%s, token=%s, value=%s", parser.getCurrentName(), token,
                        parser.getValueAsString()), out);
                break;
            case VALUE_FALSE:
            case VALUE_TRUE:
                print(index, String.format("fieldname=%s, token=%s, value=%s", parser.getCurrentName(), token,
                        parser.getBooleanValue()), out);
                break;
            case FIELD_NAME:
                //print(index, String.format("fieldname=%s, token=%s", parser.getCurrentName(), token));
                break;
            case END_ARRAY:
            case END_OBJECT:
                index--;
                break;
            default:
            }
            token = parser.nextToken();
        }
    } catch (Exception ex) {
        ex.printStackTrace();
        throw ex;
    }
}

From source file:com.taveloper.http.test.StreamParseUtil.java

/**
 * Starts parsing an object or array by making sure the parser points to an
 * object field name, first array value or end of object or array. <p> If
 * the parser is at the start of input, {@link #nextToken()} is called. The
 * current token must then be {@link JsonToken#START_OBJECT}, {@link JsonToken#END_OBJECT},
 * {@link JsonToken#START_ARRAY}, {@link JsonToken#END_ARRAY}, or
 * {@link JsonToken#FIELD_NAME}. For an object only, after the method is
 * called, the current token must be either {@link JsonToken#FIELD_NAME} or
 * {@link JsonToken#END_OBJECT}. </p>
 */// w  w w .  j a  va 2  s.  c  o m
public static JsonToken startParsingObjectOrArray(JsonParser parser) throws IOException {
    JsonToken currentToken = startParsing(parser);
    switch (currentToken) {
    case START_OBJECT:
        currentToken = nextToken(parser);
        Preconditions.checkArgument(
                currentToken == JsonToken.FIELD_NAME || currentToken == JsonToken.END_OBJECT, currentToken);
        break;
    case START_ARRAY:
        currentToken = nextToken(parser);
        break;
    }
    return currentToken;
}

From source file:org.nuxeo.client.test.marshallers.DocumentMarshaller.java

protected static Document readDocument(JsonParser jp) throws IOException {
    String uid = null;//from   w  ww .  j  a v  a  2 s. c o m
    String type = null;
    String path = null;
    String state = null;
    String versionLabel = null;
    String isCheckedOut = null;
    String lockCreated = null;
    String lockOwner = null;
    String repository = null;
    String changeToken = null;
    boolean isProxy = false;
    JsonToken tok = jp.nextToken();
    Map<String, Object> properties = new HashMap<>();
    while (tok != null && tok != JsonToken.END_OBJECT) {
        tok = jp.nextToken();
        String key = jp.getText();
        tok = jp.nextToken();
        if ("uid".equals(key)) {
            uid = jp.getText();
        } else if ("path".equals(key)) {
            path = jp.getText();
        } else if ("type".equals(key)) {
            type = jp.getText();
        } else if ("state".equals(key)) {
            state = jp.getText();
        } else if ("versionLabel".equals(key)) {
            versionLabel = jp.getText();
        } else if ("isCheckedOut".equals(key)) {
            isCheckedOut = jp.getText();
        } else if ("lock".equals(key)) {
            if (!JsonToken.VALUE_NULL.equals(jp.getCurrentToken())) {
                String[] lock = jp.getText().split(":");
                lockOwner = lock[0];
                lockCreated = lock[1];
            }
        } else if ("lockCreated".equals(key)) {
            lockCreated = jp.getText();
        } else if ("lockOwner".equals(key)) {
            lockOwner = jp.getText();
        } else if ("repository".equals(key)) {
            repository = jp.getText();
        } else if ("properties".equals(key)) {
            readProperties(jp, properties);
        } else if ("changeToken".equals(key)) {
            changeToken = jp.getText();
        } else if ("isProxy".equals(key)) {
            isProxy = jp.getBooleanValue();
        }
    }
    return new Document(uid, type, null, changeToken, path, state, lockOwner, lockCreated, repository,
            versionLabel, isCheckedOut, isProxy, properties, null);
}

From source file:KV78Tester.java

public void checkStop(JsonParser jp, String line, int userStopOrder) throws JsonParseException, IOException {
    boolean hasTown = false, hasName = false;
    String timingPoint = "";
    while (jp.nextToken() != JsonToken.END_OBJECT) {
        String namefield = jp.getCurrentName();
        jp.nextToken();//  w w w  . j  a  v  a2s . c o  m
        if ("Town".equals(namefield)) {
            hasTown = true;
        }
        if ("Name".equals(namefield)) {
            hasName = true;
        }
        if ("TimingPointCode".equals(namefield)) {
            timingPoint = jp.getText();
        }
    }
    if (!hasTown && !hasName)
        System.out.println(String.format("Line %s misses townname and stopname for stopnumer %d, TPC %s", line,
                userStopOrder, timingPoint));
    else if (!hasTown)
        System.out.println(String.format("Line %s misses townname for stopnumer %d, TPC %s", line,
                userStopOrder, timingPoint));
    else if (!hasName)
        System.out.println(String.format("Line %s misses stopname for stopnumer %d, TPC %s", line,
                userStopOrder, timingPoint));
}

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

/**
 * Returns {@code true} if the JSON Object is NOT finished.
 * Logic is inverted so this is used as a loop-end condition.
 *///from  w  ww.j a  v a2s  . c  o  m
public static boolean endObject(JsonParser par) {
    JsonToken token = par.getCurrentToken();
    return token != null && token != JsonToken.END_OBJECT;
}

From source file:ijfx.core.metadata.MetaDataDeserializer.java

@Override
public MetaDataSet deserialize(JsonParser jp, DeserializationContext dc)
        throws IOException, JsonProcessingException {
    MetaDataSet m = new MetaDataSet();
    while (jp.nextToken() != JsonToken.END_OBJECT) {
        String fileName = jp.getCurrentName();
        jp.nextToken();/* ww  w.  ja  va 2s. c o  m*/
        String value = jp.getText();

        m.putGeneric(fileName, value);

    }
    return m;
}

From source file:org.o3project.ocnrm.model.bind.OduBindingData.java

@Override
public void bind(String name, String resource) throws JsonParseException, JsonMappingException, IOException {
    JsonFactory factory = new JsonFactory();
    JsonParser jp = factory.createParser(resource.toString());
    jp.nextToken();//w ww . j  a  v  a  2s .c o m
    OduMapping terminationPoint = new OduMapping();
    terminationPoint.setName(name);
    while (jp.nextToken() != JsonToken.END_OBJECT) {
        String fieldname = jp.getCurrentName();
        jp.nextToken();
        if ("dpid".equals(fieldname)) {
            terminationPoint.setDpid(jp.getText());
        } else if ("port".equals(fieldname)) {
            terminationPoint.setPort(jp.getText());
        } else if ("odutype".equals(fieldname)) {
            terminationPoint.setOdutype(jp.getText());
        } else if ("ts".equals(fieldname)) {
            String ts = jp.getText();
            terminationPoint.setTs(ts);
        } else if ("tpn".equals(fieldname)) {
            terminationPoint.setTpn(jp.getText());
        } else {
            throw new IllegalStateException("Unrecognized field '" + fieldname + "'!");
        }
        bindMap.put(terminationPoint.getName(), terminationPoint);
    }
    jp.close();
}

From source file:com.msopentech.odatajclient.engine.data.metadata.edm.EdmxDeserializer.java

@Override
public Edmx deserialize(final JsonParser jp, final DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    final Edmx edmx = new Edmx();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Version".equals(jp.getCurrentName())) {
                edmx.setVersion(jp.nextTextValue());
            } else if ("DataServices".equals(jp.getCurrentName())) {
                jp.nextToken();/*  w w w.j  av a2 s  .  co m*/
                edmx.setDataServices(jp.getCodec().readValue(jp, DataServices.class));
            }
        }
    }

    return edmx;
}

From source file:com.msopentech.odatajclient.engine.data.metadata.edm.EntityKeyDeserializer.java

@Override
public EntityKey deserialize(final JsonParser jp, final DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    final EntityKey entityKey = new EntityKey();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();

        if (token == JsonToken.FIELD_NAME && "PropertyRef".equals(jp.getCurrentName())) {
            jp.nextToken();/*  ww w.j av  a2 s  .  c  o  m*/
            entityKey.getPropertyRefs().add(jp.getCodec().readValue(jp, PropertyRef.class));
        }
    }

    return entityKey;
}