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

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

Introduction

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

Prototype

JsonToken START_OBJECT

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

Click Source Link

Document

START_OBJECT is returned when encountering '{' which signals starting of an Object value.

Usage

From source file:com.addthis.codec.config.ConfigTraversingParser.java

@Override
public JsonToken nextToken() throws IOException, JsonParseException {
    if (_nextToken != null) {
        _currToken = _nextToken;/*from ww w . j a  v  a  2s . c o m*/
        _nextToken = null;
        return _currToken;
    }
    // are we to descend to a container child?
    if (_startContainer) {
        _startContainer = false;
        // minor optimization: empty containers can be skipped
        if (!_nodeCursor.currentHasChildren()) {
            _currToken = (_currToken == JsonToken.START_OBJECT) ? JsonToken.END_OBJECT : JsonToken.END_ARRAY;
            return _currToken;
        }
        _nodeCursor = _nodeCursor.iterateChildren();
        _currToken = _nodeCursor.nextToken();
        if (_currToken == JsonToken.START_OBJECT || _currToken == JsonToken.START_ARRAY) {
            _startContainer = true;
        }
        currentConfig = currentNode();
        return _currToken;
    }
    // No more content?
    if (_nodeCursor == null) {
        _closed = true; // if not already set
        currentConfig = null;
        return null;
    }
    // Otherwise, next entry from current cursor
    _currToken = _nodeCursor.nextToken();
    if (_currToken != null) {
        currentConfig = currentNode();
        if (_currToken == JsonToken.START_OBJECT || _currToken == JsonToken.START_ARRAY) {
            _startContainer = true;
        }
        return _currToken;
    }
    // null means no more children; need to return end marker
    _currToken = _nodeCursor.endToken();
    _nodeCursor = _nodeCursor.getParent();
    currentConfig = currentNode();
    return _currToken;
}

From source file:mSearch.filmlisten.FilmlisteLesen.java

public void readFilmListe(String source, final ListeFilme listeFilme, int days) {
    Log.sysLog("Liste Filme lesen von: " + source);
    JsonToken jsonToken;/*from  w  w w .j  av a2s  .  c  o m*/
    String sender = "", thema = "";
    listeFilme.clear();
    this.notifyStart(source, PROGRESS_MAX); // fr die Progressanzeige

    if (days > 0) {
        final long maxDays = 1000L * 60L * 60L * 24L * days;
        seconds = new Date().getTime() - maxDays;
    } else {
        seconds = 0;
    }

    try (InputStream in = selectDecompressor(source, getInputStreamForLocation(source));
            JsonParser jp = new JsonFactory().createParser(in)) {

        if (jp.nextToken() != JsonToken.START_OBJECT) {
            throw new IllegalStateException("Expected data to start with an Object");
        }

        while ((jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                for (int k = 0; k < ListeFilme.MAX_ELEM; ++k) {
                    listeFilme.metaDaten[k] = jp.nextTextValue();
                }
                break;
            }
        }
        while ((jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                // sind nur die Feldbeschreibungen, brauch mer nicht
                jp.nextToken();
                break;
            }
        }
        while (!Config.getStop() && (jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                DatenFilm datenFilm = new DatenFilm();
                for (int i = 0; i < DatenFilm.JSON_NAMES.length; ++i) {
                    //if we are in FASTAUTO mode, we dont need film descriptions.
                    //this should speed up loading on low end devices...
                    if (workMode == WorkMode.FASTAUTO) {
                        if (DatenFilm.JSON_NAMES[i] == DatenFilm.FILM_BESCHREIBUNG
                                || DatenFilm.JSON_NAMES[i] == DatenFilm.FILM_WEBSEITE
                                || DatenFilm.JSON_NAMES[i] == DatenFilm.FILM_GEO) {
                            jp.nextToken();
                            continue;
                        }
                    }

                    //                        if (DatenFilm.JSON_NAMES[i] ==  DatenFilm.FILM_TITEL) {
                    //                            //convert UNICODE et al to java strings.
                    //                            datenFilm.arr[DatenFilm.JSON_NAMES[i]] = StringEscapeUtils.unescapeJava(jp.nextTextValue());
                    //                        } else 
                    if (DatenFilm.JSON_NAMES[i] == DatenFilm.FILM_NEU) {
                        final String value = jp.nextTextValue();
                        //This value is unused...
                        //datenFilm.arr[DatenFilm.FILM_NEU_NR] = value;
                        datenFilm.setNew(Boolean.parseBoolean(value));
                    } else {
                        datenFilm.arr[DatenFilm.JSON_NAMES[i]] = jp.nextTextValue();
                    }

                    /// fr die Entwicklungszeit
                    if (datenFilm.arr[DatenFilm.JSON_NAMES[i]] == null) {
                        datenFilm.arr[DatenFilm.JSON_NAMES[i]] = "";
                    }
                }
                if (datenFilm.arr[DatenFilm.FILM_SENDER].isEmpty()) {
                    datenFilm.arr[DatenFilm.FILM_SENDER] = sender;
                } else {
                    sender = datenFilm.arr[DatenFilm.FILM_SENDER];
                }
                if (datenFilm.arr[DatenFilm.FILM_THEMA].isEmpty()) {
                    datenFilm.arr[DatenFilm.FILM_THEMA] = thema;
                } else {
                    thema = datenFilm.arr[DatenFilm.FILM_THEMA];
                }

                listeFilme.importFilmliste(datenFilm);
                if (seconds > 0) {
                    // muss "rckwrts" laufen, da das Datum sonst 2x gebaut werden muss
                    // wenns drin bleibt, kann mans noch ndern
                    if (!checkDate(datenFilm)) {
                        listeFilme.remove(datenFilm);
                    }
                }
            }
        }
    } catch (FileNotFoundException ex) {
        Log.errorLog(894512369, "FilmListe existiert nicht: " + source);
        listeFilme.clear();
    } catch (Exception ex) {
        Log.errorLog(945123641, ex, "FilmListe: " + source);
        listeFilme.clear();
    }

    if (Config.getStop()) {
        Log.sysLog("--> Abbruch");
        listeFilme.clear();
    }
    notifyFertig(source, listeFilme);
}

From source file:com.cedarsoft.serialization.jackson.test.UserSerializer.java

@Nonnull
@Override//from w  w  w.j  ava  2  s.c o  m
public User deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion)
        throws IOException, VersionException, JsonProcessingException {
    verifyVersionWritable(formatVersion);

    List<? extends Email> mails = null;
    List<? extends Role> roles = null;
    String name = null;
    UserDetails userDetails = null;
    Email singleEmail = null;

    JacksonParserWrapper parser = new JacksonParserWrapper(deserializeFrom);
    while (parser.nextToken() == JsonToken.FIELD_NAME) {
        String currentName = parser.getCurrentName();

        if (currentName.equals(PROPERTY_NAME)) {
            parser.nextToken(JsonToken.VALUE_STRING);
            name = deserializeFrom.getText();
            continue;
        }
        if (currentName.equals(PROPERTY_EMAILS)) {
            parser.nextToken(JsonToken.START_ARRAY);
            mails = deserializeArray(Email.class, deserializeFrom, formatVersion);
            continue;
        }
        if (currentName.equals(PROPERTY_ROLES)) {
            parser.nextToken(JsonToken.START_ARRAY);
            roles = deserializeArray(Role.class, deserializeFrom, formatVersion);
            continue;
        }
        if (currentName.equals(PROPERTY_USER_DETAILS)) {
            parser.nextToken(JsonToken.START_OBJECT);
            userDetails = deserialize(UserDetails.class, formatVersion, deserializeFrom);
            continue;
        }
        if (currentName.equals(PROPERTY_SINGLE_EMAIL)) {
            parser.nextToken(JsonToken.VALUE_STRING);
            singleEmail = deserialize(Email.class, formatVersion, deserializeFrom);
            continue;
        }

        throw new IllegalStateException("Unexpected field reached <" + currentName + ">");
    }

    //Verify deserialization
    parser.verifyDeserialized(mails, PROPERTY_EMAILS);
    parser.verifyDeserialized(roles, PROPERTY_ROLES);
    parser.verifyDeserialized(userDetails, PROPERTY_USER_DETAILS);
    parser.verifyDeserialized(singleEmail, PROPERTY_SINGLE_EMAIL);
    parser.verifyDeserialized(name, PROPERTY_NAME);
    assert mails != null;
    assert roles != null;
    assert name != null;
    assert userDetails != null;
    assert singleEmail != null;

    parser.ensureObjectClosed();

    return new User(name, mails, roles, singleEmail, userDetails);
}

From source file:com.github.shyiko.jackson.module.advice.AdvisedBeanDeserializer.java

/**
 * Main deserialization method for bean-based objects (POJOs).
 * <p/>/* w ww.ja v  a2 s  . c  o  m*/
 * NOTE: was declared 'final' in 2.2; should NOT be to let extensions
 * like Afterburner change definition.
 */
@Override
public Object deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonToken t = jp.getCurrentToken();
    // common case first:
    if (t == JsonToken.START_OBJECT) {
        if (_vanillaProcessing) {
            return vanillaDeserialize(jp, ctxt, jp.nextToken());
        }
        jp.nextToken();
        if (_objectIdReader != null) {
            return deserializeWithObjectId(jp, ctxt);
        }
        return deserializeFromObject(jp, ctxt);
    }
    return _deserializeOther(jp, ctxt, t);
}

From source file:com.tlongdev.bktf.interactor.TlongdevPriceListInteractor.java

private int parseJson(InputStream inputStream) throws IOException {
    //Create a parser from the input stream for fast parsing and low impact on memory
    JsonFactory factory = new JsonFactory();
    JsonParser parser = factory.createParser(inputStream);

    Vector<ContentValues> cVVector = new Vector<>();
    int retVal = 0;
    int count = 0;

    //Not a JSON if it doesn't start with START OBJECT
    if (parser.nextToken() != JsonToken.START_OBJECT) {
        return -1;
    }//from  ww w. j av a  2  s.co m

    while (parser.nextToken() != JsonToken.END_OBJECT) {
        String name = parser.getCurrentName();
        parser.nextToken();

        switch (name) {
        case "success":
            if (parser.getIntValue() == 0) {
                retVal = 1;
            }
            break;
        case "message":
            errorMessage = parser.getText();
            break;
        case "count":
            count = parser.getIntValue();
            break;
        case "prices":

            while (parser.nextToken() != JsonToken.END_ARRAY) {
                ContentValues values = buildContentValues(parser);
                cVVector.add(values);
            }

            if (cVVector.size() > 0) {
                ContentValues[] cvArray = new ContentValues[cVVector.size()];
                cVVector.toArray(cvArray);
                //Insert all the data into the database
                rowsInserted = mContext.getContentResolver().bulkInsert(PriceEntry.CONTENT_URI, cvArray);
                Log.v(LOG_TAG, "inserted " + rowsInserted + " rows into prices table");
            }
            break;
        }
    }

    parser.close();

    return retVal;
}

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

private static HttpHost readHost(String nodeId, JsonParser parser, Scheme scheme) throws IOException {
    HttpHost httpHost = null;//www . ja v  a  2 s . c  o  m
    String fieldName = null;
    while (parser.nextToken() != JsonToken.END_OBJECT) {
        if (parser.getCurrentToken() == JsonToken.FIELD_NAME) {
            fieldName = parser.getCurrentName();
        } else if (parser.getCurrentToken() == JsonToken.START_OBJECT) {
            if ("http".equals(fieldName)) {
                while (parser.nextToken() != JsonToken.END_OBJECT) {
                    if (parser.getCurrentToken() == JsonToken.VALUE_STRING
                            && "publish_address".equals(parser.getCurrentName())) {
                        URI boundAddressAsURI = URI.create(scheme + "://" + parser.getValueAsString());
                        httpHost = new HttpHost(boundAddressAsURI.getHost(), boundAddressAsURI.getPort(),
                                boundAddressAsURI.getScheme());
                    } else if (parser.getCurrentToken() == JsonToken.START_OBJECT) {
                        parser.skipChildren();
                    }
                }
            } else {
                parser.skipChildren();
            }
        }
    }
    //http section is not present if http is not enabled on the node, ignore such nodes
    if (httpHost == null) {
        logger.debug("skipping node [" + nodeId + "] with http disabled");
        return null;
    }
    return httpHost;
}

From source file:org.mongojack.internal.object.BsonObjectTraversingParser.java

@Override
public JsonToken nextToken() throws IOException {
    if (nextToken != null) {
        _currToken = nextToken;//from   ww  w  .  j  av a 2 s. c  o  m
        nextToken = null;
        return _currToken;
    }
    // are we to descend to a container child?
    if (startContainer) {
        startContainer = false;
        // minor optimization: empty containers can be skipped
        if (!nodeCursor.currentHasChildren()) {
            _currToken = (_currToken == JsonToken.START_OBJECT) ? JsonToken.END_OBJECT : JsonToken.END_ARRAY;
            return _currToken;
        }
        nodeCursor = nodeCursor.iterateChildren();
        _currToken = nodeCursor.nextToken();
        if (_currToken == JsonToken.START_OBJECT || _currToken == JsonToken.START_ARRAY) {
            startContainer = true;
        }
        return _currToken;
    }
    // No more content?
    if (nodeCursor == null) {
        closed = true; // if not already set
        return null;
    }
    // Otherwise, next entry from currentFieldName cursor
    _currToken = nodeCursor.nextToken();
    if (_currToken != null) {
        if (_currToken == JsonToken.START_OBJECT || _currToken == JsonToken.START_ARRAY) {
            startContainer = true;
        }
        return _currToken;
    }
    // null means no more children; need to return end marker
    _currToken = nodeCursor.endToken();
    nodeCursor = nodeCursor.getParent();
    return _currToken;
}

From source file:com.netflix.hollow.jsonadapter.HollowJsonAdapter.java

private int parseSubType(JsonParser parser, JsonToken currentToken, String subType) throws IOException {
    HollowSchema subTypeSchema = hollowSchemas.get(subType);
    switch (subTypeSchema.getSchemaType()) {
    case OBJECT://from w ww . ja v a  2s  .  com
        if (currentToken != JsonToken.START_OBJECT)
            throw new IOException("Expecting to parse a " + subType + ", which is a "
                    + subTypeSchema.getSchemaType() + ", expected JsonToken.START_OBJECT but instead found a "
                    + currentToken.toString());

        return addObject(parser, subType);

    case LIST:
    case SET:
        if (currentToken != JsonToken.START_ARRAY)
            throw new IOException("Expecting to parse a " + subType + ", which is a "
                    + subTypeSchema.getSchemaType() + ", expected JsonToken.START_ARRAY but instead found a "
                    + currentToken.toString());

        return addSubArray(parser, subType, getWriteRecord(subType));

    case MAP:
        switch (currentToken) {
        case START_ARRAY:
            return addStructuredMap(parser, subType, (HollowMapWriteRecord) getWriteRecord(subType));
        case START_OBJECT:
            return addUnstructuredMap(parser, subType, (HollowMapWriteRecord) getWriteRecord(subType));
        default:
            throw new IOException(
                    "Expecting to parse a " + subType + ", which is a " + subTypeSchema.getSchemaType()
                            + ", expected JsonToken.START_ARRAY or JsonToken.START_OBJECT but instead found a "
                            + currentToken.toString());
        }
    }
    throw new IOException();
}

From source file:org.springframework.data.couchbase.core.convert.translation.JacksonTranslationService.java

/**
 * Helper method to decode an object recursively.
 *
 * @param parser the JSON parser with the content.
 * @param target the target where the content should be stored.
 *
 * @throws IOException//w w  w  . ja  v  a  2  s  . co m
 * @returns the decoded object.
 */
private CouchbaseDocument decodeObject(final JsonParser parser, final CouchbaseDocument target)
        throws IOException {
    JsonToken currentToken = parser.nextToken();

    String fieldName = "";
    while (currentToken != null && currentToken != JsonToken.END_OBJECT) {
        if (currentToken == JsonToken.START_OBJECT) {
            target.put(fieldName, decodeObject(parser, new CouchbaseDocument()));
        } else if (currentToken == JsonToken.START_ARRAY) {
            target.put(fieldName, decodeArray(parser, new CouchbaseList()));
        } else if (currentToken == JsonToken.FIELD_NAME) {
            fieldName = parser.getCurrentName();
        } else {
            target.put(fieldName, decodePrimitive(currentToken, parser));
        }

        currentToken = parser.nextToken();
    }

    return target;
}

From source file:com.cinnober.msgcodec.json.TypeScannerJsonParserTest.java

@Test
public void testNested3() throws IOException {
    JsonParser p = new JsonFactory()
            .createParser("{\"a\":{\"$type\":\"y\", \"c\":2, \"d\":2.1}, \"$type\":\"x\", \"b\":1.1}");
    p.nextToken(); // START_OBJECT
    p.nextToken(); // FIELD_NAME
    TypeScannerJsonParser p2 = new TypeScannerJsonParser(p);
    assertEquals("x", p2.findType());

    assertNextField("a", p2);
    assertEquals(JsonToken.START_OBJECT, p2.nextToken());
    // start nested object
    p2.nextToken(); // FIELD_NAME
    assertEquals("y", p2.findType());
    assertNextField("c", p2);
    assertNextIntValue(2, p2);//from   ww  w  .ja v  a  2  s.c  o m
    assertNextField("d", p2);
    assertNextFloatValue(2.1, p2);
    assertEquals(JsonToken.END_OBJECT, p2.nextToken());
    // end nested object

    assertNextField("b", p2);
    assertNextFloatValue(1.1, p2);

    assertEquals(JsonToken.END_OBJECT, p2.nextToken());
    assertNull(p2.nextToken());
}