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:org.helm.notation2.wsadapter.MonomerWSLoader.java

/**
 * Private routine to deserialize monomer Store JSON. This is done manually to
 * give more freedom regarding data returned by the webservice.
 *
 * @param parser the JSONParser containing JSONData.
 * @param attachmentDB the attachments stored in the Toolkit
 * @return Map containing monomers//from   w ww  . j a v  a2  s  .co  m
 *
 * @throws JsonParseException
 * @throws IOException
 * @throws EncoderException
 */
private Map<String, Monomer> deserializeMonomerStore(JsonParser parser, Map<String, Attachment> attachmentDB)
        throws JsonParseException, IOException, EncoderException {
    Map<String, Monomer> monomers = new HashMap<String, Monomer>();
    Monomer currentMonomer = null;

    parser.nextToken();
    while (parser.hasCurrentToken()) {
        String fieldName = parser.getCurrentName();
        JsonToken token = parser.getCurrentToken();

        if (JsonToken.START_OBJECT.equals(token)) {
            currentMonomer = new Monomer();
        } else if (JsonToken.END_OBJECT.equals(token)) {
            monomers.put(currentMonomer.getAlternateId(), currentMonomer);
        }

        if (fieldName != null) {
            switch (fieldName) {
            // id is first field
            case "id":
                parser.nextToken();
                currentMonomer.setId(Integer.parseInt(parser.getText()));
                break;
            case "alternateId":
                parser.nextToken();
                currentMonomer.setAlternateId(parser.getText());
                break;
            case "naturalAnalog":
                parser.nextToken();
                currentMonomer.setNaturalAnalog(parser.getText());
                break;
            case "name":
                parser.nextToken();
                currentMonomer.setName(parser.getText());
                break;
            case "canSMILES":
                parser.nextToken();
                currentMonomer.setCanSMILES(parser.getText());
                break;
            case "molfile":
                parser.nextToken();
                currentMonomer.setMolfile(MolfileEncoder.decode(parser.getText()));
                break;
            case "monomerType":
                parser.nextToken();
                currentMonomer.setMonomerType(parser.getText());
                break;
            case "polymerType":
                parser.nextToken();
                currentMonomer.setPolymerType(parser.getText());
                break;
            case "attachmentList":
                currentMonomer.setAttachmentList(deserializeAttachmentList(parser, attachmentDB));
                break;
            case "newMonomer":
                parser.nextToken();
                currentMonomer.setNewMonomer(Boolean.parseBoolean(parser.getText()));
                break;
            case "adHocMonomer":
                parser.nextToken();
                currentMonomer.setAdHocMonomer(Boolean.parseBoolean(parser.getText()));
                break;
            default:
                break;
            }
        }
        parser.nextToken();
    }

    return monomers;
}

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

/**
 * Prepares the deserialization.//  w w w .ja  v  a 2 s  . c  o  m
 *
 * If the format version is set - the type and version properties are *not* read!
 * This can be useful for cases where this information is not available...
 *
 * @param wrapper the wrapper
 * @param formatVersionOverride the format version
 * @return the format version
 * @throws java.io.IOException if there is an io problem
 */
@Nonnull
protected Version prepareDeserialization(@Nonnull JacksonParserWrapper wrapper,
        @Nullable Version formatVersionOverride) throws IOException, SerializationException {
    if (isObjectType()) {
        wrapper.nextToken(JsonToken.START_OBJECT);

        beforeTypeAndVersion(wrapper);

        if (formatVersionOverride == null) {
            wrapper.nextFieldValue(PROPERTY_TYPE);
            String readType = wrapper.getText();
            verifyType(readType);
            wrapper.nextFieldValue(PROPERTY_VERSION);
            Version version = Version.parse(wrapper.getText());
            verifyVersionReadable(version);
            return version;
        } else {
            verifyVersionReadable(formatVersionOverride);
            return formatVersionOverride;
        }
    } else {
        //Not an object type
        wrapper.nextToken();
        return getFormatVersion();
    }
}

From source file:msearch.io.MSFilmlisteLesen.java

private boolean filmlisteJsonEinlesen(File vonDatei, ListeFilme listeFilme) {
    boolean ret = false;
    BZip2CompressorInputStream bZip2CompressorInputStream;
    JsonFactory jsonF = new JsonFactory();
    JsonParser jp = null;/*from  w w  w  . j a v  a  2s  .c  o m*/
    JsonToken jsonToken;
    String sender = "", thema = "";
    try {
        // ##########################################################
        // und jetzt die Liste einlesen, URL kann es jetzt schon nicht mehr sein!
        if (!vonDatei.exists()) {
            MSLog.fehlerMeldung(702030698, MSLog.FEHLER_ART_PROG, "MSearchIoXmlFilmlisteLesen.filmlisteLesen",
                    "Datei existiert nicht: " + vonDatei.getName());
            return false;
        }
        if (vonDatei.getName().endsWith(MSConst.FORMAT_XZ)) {
            XZInputStream xZInputStream = new XZInputStream(new FileInputStream(vonDatei));
            jp = jsonF.createParser(new InputStreamReader(xZInputStream, MSConst.KODIERUNG_UTF));
        } else if (vonDatei.getName().endsWith(MSConst.FORMAT_BZ2)) {
            bZip2CompressorInputStream = new BZip2CompressorInputStream(new FileInputStream(vonDatei));
            jp = jsonF.createParser(new InputStreamReader(bZip2CompressorInputStream, MSConst.KODIERUNG_UTF));
        } else if (vonDatei.getName().endsWith(MSConst.FORMAT_ZIP)) {
            ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(vonDatei));
            zipInputStream.getNextEntry();
            jp = jsonF.createParser(new InputStreamReader(zipInputStream, MSConst.KODIERUNG_UTF));
        } else {
            jp = jsonF.createParser(vonDatei); // geht so am schnellsten
        }
        if (jp.nextToken() != JsonToken.START_OBJECT) {
            throw new IOException("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 ((jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                DatenFilm datenFilm = new DatenFilm();
                for (int i = 0; i < DatenFilm.COLUMN_NAMES_JSON.length; ++i) {
                    datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] = jp.nextTextValue();
                    /// fr die Entwicklungszeit
                    if (datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] == null) {
                        datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] = "";
                    }
                }
                if (datenFilm.arr[DatenFilm.FILM_SENDER_NR].equals("")) {
                    datenFilm.arr[DatenFilm.FILM_SENDER_NR] = sender;
                } else {
                    sender = datenFilm.arr[DatenFilm.FILM_SENDER_NR];
                }
                if (datenFilm.arr[DatenFilm.FILM_THEMA_NR].equals("")) {
                    datenFilm.arr[DatenFilm.FILM_THEMA_NR] = thema;
                } else {
                    thema = datenFilm.arr[DatenFilm.FILM_THEMA_NR];
                }
                listeFilme.importFilmliste(datenFilm);
            }
        }
        jp.close();
        ret = true;
    } catch (Exception ex) {
        MSLog.fehlerMeldung(468956200, MSLog.FEHLER_ART_PROG, "MSearchIoXmlFilmlisteLesen.filmlisteLesen", ex,
                "von: " + vonDatei.getName());
    }
    return ret;
}

From source file:org.jberet.support.io.JacksonCsvItemReader.java

@Override
public Object readItem() throws Exception {
    if (rowNumber >= end) {
        return null;
    }/*w  w  w.ja v a  2s . c  o m*/

    JsonToken token;
    final Object readValue;

    if (!rawAccess) {
        do {
            token = csvParser.nextToken();
            if (token == null) {
                return null;
            }
            if (token == JsonToken.START_OBJECT) {
                if (++rowNumber >= start) {
                    break;
                }
            }
        } while (true);

        readValue = objectMapper.readValue(csvParser, beanType);
        if (!skipBeanValidation) {
            ItemReaderWriterBase.validate(readValue);
        }
    } else {
        do {
            token = csvParser.nextToken();
            if (token == null) {
                return null;
            }
            if (token == JsonToken.START_ARRAY) {
                if (++rowNumber >= start) {
                    break;
                }
            }
        } while (true);

        readValue = objectMapper.readValue(csvParser, beanType);
    }
    return readValue;
}

From source file:com.quinsoft.zeidon.standardoe.ActivateOisFromJsonStream.java

private boolean readOi() throws Exception {
    JsonToken token = jp.nextToken();/*  w  ww.  ja v a2s .  co  m*/

    // If we find the end of the OI array then that's the end of OIs.
    if (token == JsonToken.END_ARRAY)
        return false; // No more OIs in the stream.

    if (token != JsonToken.START_OBJECT)
        throw new ZeidonException("OI JSON stream doesn't start with object.");

    token = jp.nextToken();

    String fieldName = jp.getCurrentName();
    if (StringUtils.equals(fieldName, ".oimeta"))
        token = readOiMeta();
    else
        throw new ZeidonException(".oimeta object not specified in JSON stream");

    // If the token after reading the .oimeta is END_OBJECT then the OI is empty.
    if (token != JsonToken.END_OBJECT) {
        fieldName = jp.getCurrentName();
        if (!StringUtils.equalsIgnoreCase(fieldName, lodDef.getRoot().getName()))
            throw new ZeidonException("First entity specified in OI (%s) is not the root (%s)", fieldName,
                    lodDef.getRoot().getName());

        readEntity(fieldName);
        token = jp.nextToken();
    }

    if (selectedInstances.size() > 0)
        setCursors();
    else
        view.reset();

    if (token != JsonToken.END_OBJECT)
        throw new ZeidonException("OI JSON stream doesn't end with object.");

    if (readOnlyOi)
        ((InternalView) view).getViewImpl().getObjectInstance().setReadOnly(true);

    if (readOnly)
        view.setReadOnly(true);

    if (totalRootCount != null)
        view.setTotalRootCount(totalRootCount);

    return true; // Keep looking for OIs in the stream.
}

From source file:com.netflix.hollow.jsonadapter.discover.HollowJsonAdapterSchemaDiscoverer.java

private void discoverSubArraySchemas(JsonParser parser, HollowDiscoveredSchema objectSchema)
        throws IOException {
    JsonToken token = parser.nextToken();

    while (token != JsonToken.END_ARRAY) {
        if (token == JsonToken.START_OBJECT) {
            discoverSchemas(parser, objectSchema);
        } else {//w w w .j a v  a 2  s .  c o  m
            discoverSchemaField(parser, token, "value", objectSchema);
        }
        token = parser.nextToken();
    }
}

From source file:com.amazonaws.services.cloudtrail.processinglibrary.serializer.AbstractEventSerializer.java

/**
 * Parse user identity in CloudTrailEventData
 *
 * @param eventData//from www .  jav a2s.c om
 * @throws IOException
 */
private void parseUserIdentity(CloudTrailEventData eventData) throws IOException {
    JsonToken nextToken = this.jsonParser.nextToken();
    if (nextToken == JsonToken.VALUE_NULL) {
        eventData.add(CloudTrailEventField.userIdentity.name(), null);
        return;
    }

    if (nextToken != JsonToken.START_OBJECT) {
        throw new JsonParseException("Not a UserIdentity object", this.jsonParser.getCurrentLocation());
    }

    UserIdentity userIdentity = new UserIdentity();

    while (this.jsonParser.nextToken() != JsonToken.END_OBJECT) {
        String key = this.jsonParser.getCurrentName();

        switch (key) {
        case "type":
            userIdentity.add(CloudTrailEventField.type.name(), this.jsonParser.nextTextValue());
            break;
        case "principalId":
            userIdentity.add(CloudTrailEventField.principalId.name(), this.jsonParser.nextTextValue());
            break;
        case "arn":
            userIdentity.add(CloudTrailEventField.arn.name(), this.jsonParser.nextTextValue());
            break;
        case "accountId":
            userIdentity.add(CloudTrailEventField.accountId.name(), this.jsonParser.nextTextValue());
            break;
        case "accessKeyId":
            userIdentity.add(CloudTrailEventField.accessKeyId.name(), this.jsonParser.nextTextValue());
            break;
        case "userName":
            userIdentity.add(CloudTrailEventField.userName.name(), this.jsonParser.nextTextValue());
            break;
        case "sessionContext":
            this.parseSessionContext(userIdentity);
            break;
        case "invokedBy":
            userIdentity.add(CloudTrailEventField.invokedBy.name(), this.jsonParser.nextTextValue());
            break;
        default:
            userIdentity.add(key, this.parseDefaultValue(key));
            break;
        }
    }
    eventData.add(CloudTrailEventField.userIdentity.name(), userIdentity);
}

From source file:io.protostuff.JsonIOUtil.java

/**
 * Merges the {@code message} from the JsonParser using the given {@code schema}.
 *///ww w.  jav  a  2  s  .  c  o  m
public static <T> void mergeFrom(JsonParser parser, T message, Schema<T> schema, boolean numeric)
        throws IOException {
    if (parser.nextToken() != JsonToken.START_OBJECT) {
        throw new JsonInputException("Expected token: { but was " + parser.getCurrentToken() + " on message "
                + schema.messageFullName());
    }

    schema.mergeFrom(new JsonInput(parser, numeric), message);

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

From source file:com.adobe.communities.ugc.migration.importer.GenericUGCImporter.java

/**
 * Handle each of the importable types of ugc content
 * @param jsonParser - the parsing stream
 * @param resource - the parent resource of whatever it is we're importing (must already exist)
 * @throws ServletException/*from   ww w.ja v  a2s  .  co  m*/
 * @throws IOException
 */
protected void importFile(final JsonParser jsonParser, final Resource resource, final ResourceResolver resolver)
        throws ServletException, IOException {
    final UGCImportHelper importHelper = new UGCImportHelper();
    JsonToken token1 = jsonParser.getCurrentToken();
    importHelper.setSocialUtils(socialUtils);
    if (token1.equals(JsonToken.START_OBJECT)) {
        jsonParser.nextToken();
        if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT_TYPE)) {
            jsonParser.nextToken();
            final String contentType = jsonParser.getValueAsString();
            if (contentType.equals(ContentTypeDefinitions.LABEL_QNA_FORUM)) {
                importHelper.setQnaForumOperations(qnaForumOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_FORUM)) {
                importHelper.setForumOperations(forumOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_CALENDAR)) {
                importHelper.setCalendarOperations(calendarOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_JOURNAL)) {
                importHelper.setJournalOperations(journalOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_FILELIBRARY)) {
                importHelper.setFileLibraryOperations(fileLibraryOperations);
            }
            importHelper.setTallyService(tallyOperationsService); // (everything potentially needs tally)
            importHelper.setCommentOperations(commentOperations); // nearly anything can have comments on it
            jsonParser.nextToken(); // content
            if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT)) {
                jsonParser.nextToken();
                token1 = jsonParser.getCurrentToken();
                if (token1.equals(JsonToken.START_OBJECT) || token1.equals(JsonToken.START_ARRAY)) {
                    if (!resolver.isLive()) {
                        throw new ServletException("Resolver is already closed");
                    }
                } else {
                    throw new ServletException("Start object token not found for content");
                }
                if (token1.equals(JsonToken.START_OBJECT)) {
                    try {
                        if (contentType.equals(ContentTypeDefinitions.LABEL_QNA_FORUM)) {
                            importHelper.importQnaContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_FORUM)) {
                            importHelper.importForumContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_COMMENTS)) {
                            importHelper.importCommentsContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_JOURNAL)) {
                            importHelper.importJournalContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_FILELIBRARY)) {
                            importHelper.importFileLibrary(jsonParser, resource, resolver);
                        } else {
                            LOG.info("Unsupported content type: {}", contentType);
                            jsonParser.skipChildren();
                        }
                        jsonParser.nextToken();
                    } catch (final IOException e) {
                        throw new ServletException(e);
                    }
                    jsonParser.nextToken(); // skip over END_OBJECT
                } else {
                    try {
                        if (contentType.equals(ContentTypeDefinitions.LABEL_CALENDAR)) {
                            importHelper.importCalendarContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_TALLY)) {
                            importHelper.importTallyContent(jsonParser, resource, resolver);
                        } else {
                            LOG.info("Unsupported content type: {}", contentType);
                            jsonParser.skipChildren();
                        }
                        jsonParser.nextToken();
                    } catch (final IOException e) {
                        throw new ServletException(e);
                    }
                    jsonParser.nextToken(); // skip over END_ARRAY
                }
            } else {
                throw new ServletException("Content not found");
            }
        } else {
            throw new ServletException("No content type specified");
        }
    } else {
        throw new ServletException("Invalid Json format");
    }
}

From source file:com.adobe.communities.ugc.migration.importer.MessagesImportServlet.java

private void importMessages(final SlingHttpServletRequest request, final JsonParser jsonParser,
        final Map<String, Object> messageModifiers) throws ServletException {

    if (!jsonParser.getCurrentToken().equals(JsonToken.START_ARRAY)) {
        throw new ServletException("unexpected starting token " + jsonParser.getCurrentToken().asString());
    }//from   w w w  . j ava2s .  com

    try {
        jsonParser.nextToken(); //presumably, we will advance to a "start object" token
        while (!jsonParser.getCurrentToken().equals(JsonToken.END_ARRAY)) {
            final Map<String, Map<String, Boolean>> recipientModifiers = new HashMap<String, Map<String, Boolean>>();
            final Map<String, Object> props = new HashMap<String, Object>();
            final Map<String, Object> messageModifier = new HashMap<String, Object>();
            List<FileDataSource> attachments = new ArrayList<FileDataSource>();
            String sender = "";
            jsonParser.nextToken(); //field name
            while (!jsonParser.getCurrentToken().equals(JsonToken.END_OBJECT)) {
                final String fieldName = jsonParser.getCurrentName();
                jsonParser.nextToken(); //value
                if (fieldName.equals("senderId")) {
                    sender = URLDecoder.decode(jsonParser.getValueAsString(), "UTF-8");
                } else if (fieldName.equals("added")) {
                    final Calendar calendar = new GregorianCalendar();
                    calendar.setTimeInMillis(jsonParser.getLongValue());
                    messageModifier.put("added", calendar);
                } else if (fieldName.equals("recipients")) {
                    // build the string for the "to" property and also create the modifiers we'll need later
                    final StringBuilder recipientString = new StringBuilder();
                    //iterate over each key (each being a recipient id)
                    if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) {
                        jsonParser.nextToken(); // should get first recipientId
                        while (!jsonParser.getCurrentToken().equals(JsonToken.END_OBJECT)) {
                            final String recipientId = jsonParser.getCurrentName();
                            jsonParser.nextToken(); //start object
                            jsonParser.nextToken(); //first label
                            final Map<String, Boolean> interactionModifiers = new HashMap<String, Boolean>();
                            while (!jsonParser.getCurrentToken().equals(JsonToken.END_OBJECT)) {
                                final String label = jsonParser.getCurrentName();
                                jsonParser.nextToken();
                                final Boolean labelValue = jsonParser.getBooleanValue();
                                interactionModifiers.put(label, labelValue);
                                jsonParser.nextToken(); //next label or end object
                            }
                            try {
                                final String userPath = userPropertiesService.getAuthorizablePath(recipientId);
                                recipientModifiers.put(userPath, interactionModifiers);
                                recipientString.append(recipientId);
                            } catch (final RepositoryException e) {
                                // log the fact that a recipient specified in the json file doesn't exist in this
                                // environment
                                throw new ServletException(
                                        "A recipient specified in the migration file couldn't "
                                                + "be found in this environment",
                                        e);
                            }
                            jsonParser.nextToken(); // next recipientId or end object
                            if (jsonParser.getCurrentToken().equals(JsonToken.FIELD_NAME)) {
                                recipientString.append(';');
                            }
                        }
                        props.put("to", recipientString);
                        messageModifier.put("recipientDetails", recipientModifiers);
                    }
                } else if (fieldName.equals(ContentTypeDefinitions.LABEL_ATTACHMENTS)) {
                    UGCImportHelper.getAttachments(jsonParser, attachments);
                } else {
                    props.put(fieldName, URLDecoder.decode(jsonParser.getValueAsString(), "UTF-8"));
                }
                jsonParser.nextToken(); //either next field name or end object
            }
            final Random range = new Random();
            final String key = String.valueOf(range.nextInt(Integer.MAX_VALUE))
                    + String.valueOf(range.nextInt(Integer.MAX_VALUE));
            // we're going to temporarily overwrite the subject (to do a search) and need to track its initial value
            if (props.containsKey("subject")) {
                messageModifier.put("subject", props.get("subject"));
            } else {
                messageModifier.put("subject", "");
            }
            props.put("subject", key); //use subject as the search key
            messageModifiers.put(key, messageModifier);
            try {
                short result = messagingService.create(request.getResourceResolver(), request.getResource(),
                        sender, props, attachments,
                        clientUtilsFactory.getClientUtilities(xss, request, socialUtils));

                if (result != 200) {
                    throw new ServletException("Message sending failed. Return code was " + result);
                }
            } catch (final OperationException e) {
                throw new ServletException("Unable to create a message through the operation service", e);
            }
            jsonParser.nextToken(); //either END_ARRAY or START_OBJECT
        }

    } catch (final IOException e) {
        throw new ServletException("Encountered exception while parsing json content", e);
    }
}