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:net.signalr.client.json.jackson.JacksonReader.java

@Override
public boolean read() {
    final JsonToken token;

    try {/*from  w ww  .  j ava2  s .c om*/
        token = _parser.nextToken();
    } catch (final Exception e) {
        throw new JsonException(e);
    }

    if (token == null) {
        return false;
    }
    if (token == JsonToken.NOT_AVAILABLE) {
        return false;
    }
    if (token == JsonToken.END_ARRAY) {
        return false;
    }
    if (token == JsonToken.END_OBJECT) {
        return false;
    }

    return true;
}

From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java

@Override
public PersonalGenomeClientException parseException(final InputStream inputStream) {
    checkNotNull(inputStream);/* ww  w  .ja va  2s.  c  o m*/
    JsonParser parser = null;
    try {
        parser = jsonFactory.createParser(inputStream);
        parser.nextToken();

        String error = null;
        String errorDescription = null;
        while (parser.nextToken() != JsonToken.END_OBJECT) {
            String field = parser.getCurrentName();
            parser.nextToken();

            if ("error".equals(field)) {
                error = parser.getText();
            } else if ("error_description".equals(field)) {
                errorDescription = parser.getText();
            }
        }
        if ("access_denied".equals(error)) {
            return new AccessDeniedException(errorDescription);
        } else if ("invalid_client".equals(error)) {
            return new InvalidClientException(errorDescription);
        } else if ("invalid_request".equals(error)) {
            return new InvalidRequestException(errorDescription);
        } else if ("invalid_scope".equals(error)) {
            return new InvalidScopeException(errorDescription);
        }
        return new PersonalGenomeClientException(errorDescription);
    } catch (IOException e) {
        logger.warn("could not parse exception", e);
    } finally {
        try {
            inputStream.close();
        } catch (Exception e) {
            // ignored
        }
        try {
            parser.close();
        } catch (Exception e) {
            // ignored
        }
    }
    return new PersonalGenomeClientException("unknown error");
}

From source file:io.protostuff.JsonIOUtil.java

/**
 * Creates a json pipe from a {@link JsonParser}.
 *///from   w  w w .ja v a  2 s  . com
public static Pipe newPipe(final JsonParser parser, boolean numeric) throws IOException {
    final JsonInput jsonInput = new JsonInput(parser, numeric);
    return new Pipe() {
        @Override
        protected Input begin(Pipe.Schema<?> pipeSchema) throws IOException {
            if (parser.nextToken() != JsonToken.START_OBJECT) {
                throw new JsonInputException("Expected token: { but was " + parser.getCurrentToken()
                        + " on message " + pipeSchema.wrappedSchema.messageFullName());
            }

            return jsonInput;
        }

        @Override
        protected void end(Pipe.Schema<?> pipeSchema, Input input, boolean cleanupOnly) throws IOException {
            if (cleanupOnly) {
                parser.close();
                return;
            }

            assert input == jsonInput;
            final JsonToken token = parser.getCurrentToken();

            parser.close();

            if (token != JsonToken.END_OBJECT) {
                throw new JsonInputException("Expected token: } but was " + token + " on message "
                        + pipeSchema.wrappedSchema.messageFullName());
            }
        }
    };
}

From source file:net.openhft.chronicle.wire.benchmarks.Data.java

public void readFrom(JsonParser parser) throws IOException {
    parser.nextToken();/* w  w w.  j  av  a  2  s . c  o  m*/
    while (parser.nextToken() != JsonToken.END_OBJECT) {
        String fieldname = parser.getCurrentName();
        parser.nextToken();
        switch (fieldname) {
        case "price":
            setPrice(parser.getDoubleValue());
            break;
        case "flag":
            flag = parser.getBooleanValue();
            break;
        case "text":
            setText(parser.getValueAsString());
            break;
        case "side":
            side = Side.valueOf(parser.getValueAsString());
            break;
        case "smallInt":
            smallInt = parser.getIntValue();
            break;
        case "longInt":
            longInt = parser.getLongValue();
            break;
        }
    }
}

From source file:org.emfjson.jackson.databind.deser.EObjectDeserializer.java

@Override
public EObject deserialize(JsonParser jp, DeserializationContext ctxt, EObject intoValue) throws IOException {
    if (intoValue == null) {
        return null;
    }/*  w  w  w.j  ava2  s  .  com*/

    EMFContext.prepare(ctxt);
    EObjectPropertyMap propertyMap = builder.construct(intoValue.eClass());

    final Resource resource = getResource(ctxt);

    while (jp.nextToken() != JsonToken.END_OBJECT) {
        final String field = jp.getCurrentName();
        final EObjectProperty property = propertyMap.findProperty(field);

        if (property != null) {
            property.deserializeAndSet(jp, intoValue, ctxt, resource);
        } else {
            handleUnknownProperty(jp, resource, ctxt);
        }
    }

    return intoValue;
}

From source file:com.cedarsoft.serialization.jackson.JacksonParserWrapper.java

public void closeObject() throws IOException {
    nextToken(JsonToken.END_OBJECT);
}

From source file:org.elasticsearch.client.sniff.ElasticsearchNodesSniffer.java

static List<Node> readHosts(HttpEntity entity, Scheme scheme, JsonFactory jsonFactory) throws IOException {
    try (InputStream inputStream = entity.getContent()) {
        JsonParser parser = jsonFactory.createParser(inputStream);
        if (parser.nextToken() != JsonToken.START_OBJECT) {
            throw new IOException("expected data to start with an object");
        }/*from  w w w . ja v a  2s  .  c  o  m*/
        List<Node> nodes = new ArrayList<>();
        while (parser.nextToken() != JsonToken.END_OBJECT) {
            if (parser.getCurrentToken() == JsonToken.START_OBJECT) {
                if ("nodes".equals(parser.getCurrentName())) {
                    while (parser.nextToken() != JsonToken.END_OBJECT) {
                        JsonToken token = parser.nextToken();
                        assert token == JsonToken.START_OBJECT;
                        String nodeId = parser.getCurrentName();
                        Node node = readNode(nodeId, parser, scheme);
                        if (node != null) {
                            nodes.add(node);
                        }
                    }
                } else {
                    parser.skipChildren();
                }
            }
        }
        return nodes;
    }
}

From source file:com.addthis.codec.jackson.CodecTypeDeserializer.java

@Override
public Object deserializeTypedFromAny(JsonParser jp, DeserializationContext ctxt) throws IOException {
    // a jackson thing we might as well include
    if (jp.canReadTypeId()) {
        Object typeId = jp.getTypeId();
        if (typeId != null) {
            return _deserializeWithNativeTypeId(jp, ctxt, typeId);
        }// w  w w  .  j  av a2  s.  c o  m
    }
    // can use this to approximate error location if a sub-method throws an exception
    JsonLocation currentLocation = jp.getTokenLocation();
    JsonNode jsonNode;
    // empty objects can appear with END_OBJECT. that has special handling lots of places, but not in readTree
    if (jp.getCurrentToken() == JsonToken.END_OBJECT) {
        jsonNode = ctxt.getNodeFactory().objectNode();
    } else {
        jsonNode = jp.readValueAsTree();
    }
    ObjectCodec objectCodec = jp.getCodec();

    try {
        Object bean = null;
        // _array handler
        if (jsonNode.isArray()) {
            bean = _deserializeTypedFromArray((ArrayNode) jsonNode, objectCodec, ctxt);
            // object handler
        } else if (jsonNode.isObject()) {
            bean = _deserializeTypedFromObject((ObjectNode) jsonNode, objectCodec, ctxt);
        }
        if (bean != null) {
            return bean;
        } else {
            // Jackson 2.6+ throws NPE on null typeId parameter (underlying Map changed from HashMap
            // to ConcurrentHashMap), so use empty string instead of null
            JsonDeserializer<Object> deser = _findDeserializer(ctxt, "");
            JsonParser treeParser = jp.getCodec().treeAsTokens(jsonNode);
            treeParser.nextToken();
            return deser.deserialize(treeParser, ctxt);
        }
    } catch (JsonMappingException ex) {
        throw Jackson.maybeImproveLocation(currentLocation, ex);
    }
}

From source file:org.talend.components.jira.datum.EntityParser.java

/**
 * Rewinds {@link JsonParser} to the value of specified field
 * /*from w  ww .  java2  s.c  o m*/
 * @param parser JSON parser
 * @param fieldName name of field rewind to
 * @return true if field was found, false otherwise
 * @throws IOException in case of exception during JSON parsing
 */
private static boolean rewindToField(JsonParser parser, final String fieldName) throws IOException {

    JsonToken currentToken = parser.nextToken();
    /*
     * There is no special token, which denotes end of file, in Jackson.
     * This counter is used to define the end of file.
     * The counter counts '{' and '}'. It is increased, when meets '{' and
     * decreased, when meets '}'. When braceCounter == 0 it means the end
     * of file was met
     */
    int braceCounter = 0;
    String currentField = null;
    do {
        if (JsonToken.START_OBJECT == currentToken) {
            braceCounter++;
        }
        if (JsonToken.END_OBJECT == currentToken) {
            braceCounter--;
        }
        if (JsonToken.FIELD_NAME == currentToken) {
            currentField = parser.getCurrentName();
        }
        currentToken = parser.nextToken();
    } while (!fieldName.equals(currentField) && braceCounter != END_JSON);

    return braceCounter != END_JSON;
}

From source file:eu.project.ttc.readers.TermSuiteJsonCasDeserializer.java

public static void deserialize(InputStream inputStream, CAS cas, String encoding) {
    Preconditions.checkNotNull(inputStream, "Paramater input stream is null");
    Preconditions.checkNotNull(inputStream, "Paramater CAS is null");

    try {//from  www. jav  a  2s  .co  m

        JsonFactory factory = new JsonFactory();
        parser = factory.createParser(inputStream);

        SourceDocumentInformation sdi = (SourceDocumentInformation) cas
                .createAnnotation(cas.getJCas().getCasType(SourceDocumentInformation.type), 0, 0);
        WordAnnotation wa = (WordAnnotation) cas.createAnnotation(cas.getJCas().getCasType(WordAnnotation.type),
                0, 0);
        TermOccAnnotation toa = (TermOccAnnotation) cas
                .createAnnotation(cas.getJCas().getCasType(TermOccAnnotation.type), 0, 0);
        FixedExpression fe = (FixedExpression) cas
                .createAnnotation(cas.getJCas().getCasType(FixedExpression.type), 0, 0);
        boolean inSdi = false;
        boolean inWa = false;
        boolean inToa = false;
        boolean inFe = false;
        boolean inCoveredText = false;

        while ((token = parser.nextToken()) != null) {

            if (inSdi) {

                if (token == JsonToken.END_OBJECT) {
                    inSdi = false;
                } else {
                    fillSdi(parser, token, sdi);
                }
            }

            else if (inWa) {
                if (token == JsonToken.END_ARRAY) {
                    inWa = false;
                } else if (token == JsonToken.END_OBJECT) {
                    wa.addToIndexes();
                    wa = (WordAnnotation) cas.createAnnotation(cas.getJCas().getCasType(WordAnnotation.type), 0,
                            0);
                }
                fillWordAnnotations(parser, token, wa);
            }

            else if (inToa) {
                if (token == JsonToken.END_ARRAY && Objects.equals(parser.getParsingContext().getCurrentName(),
                        "term_occ_annotations")) {
                    inToa = false;
                } else if (token == JsonToken.END_OBJECT) {
                    toa.addToIndexes();
                    toa = (TermOccAnnotation) cas
                            .createAnnotation(cas.getJCas().getCasType(TermOccAnnotation.type), 0, 0);
                }
                FillTermOccAnnotations(parser, token, toa, cas);
            }

            else if (inFe) {
                if (token == JsonToken.END_ARRAY
                        && Objects.equals(parser.getParsingContext().getCurrentName(), "fixed_expressions")) {
                    inFe = false;
                } else if (token == JsonToken.END_OBJECT) {
                    fe.addToIndexes();
                    fe = (FixedExpression) cas.createAnnotation(cas.getJCas().getCasType(FixedExpression.type),
                            0, 0);
                }
                FillFixedExpressions(parser, token, fe, cas);
            }

            else if (inCoveredText) {
                if (token == JsonToken.VALUE_STRING) {
                    String text = parser.getText();
                    cas.setDocumentText(text);
                }
            }

            else if ("sdi".equals(parser.getParsingContext().getCurrentName())) {
                inSdi = true;
            }

            else if ("word_annotations".equals(parser.getParsingContext().getCurrentName())) {
                inWa = true;
            }

            else if ("term_occ_annotations".equals(parser.getParsingContext().getCurrentName())) {
                inToa = true;
            }

            else if ("fixed_expressions".equals(parser.getParsingContext().getCurrentName())) {
                inFe = true;
            }

            else if ("covered_text".equals(parser.getParsingContext().getCurrentName())) {
                inCoveredText = true;
            }
        }
        sdi.addToIndexes();
    } catch (IOException | CASException e) {
        logger.error("An error occurred during TermSuite Json Cas parsing", e);
    }
}