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:com.adobe.communities.ugc.migration.importer.ForumImportServlet.java

protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response)
        throws ServletException, IOException {

    final ResourceResolver resolver = request.getResourceResolver();

    UGCImportHelper.checkUserPrivileges(resolver, rrf);

    final UGCImportHelper importHelper = new UGCImportHelper();
    importHelper.setForumOperations(forumOperations);
    importHelper.setTallyService(tallyOperationsService);
    // get the forum we'll be adding new topics to
    final String path = request.getRequestParameter("path").getString();
    final Resource resource = request.getResourceResolver().getResource(path);
    if (resource == null) {
        throw new ServletException("Could not find a valid resource for import");
    }/*from   www .j ava  2s. c  om*/

    // finally get the uploaded file
    final RequestParameter[] fileRequestParameters = request.getRequestParameters("file");
    if (fileRequestParameters != null && fileRequestParameters.length > 0
            && !fileRequestParameters[0].isFormField()) {

        InputStream inputStream = fileRequestParameters[0].getInputStream();
        JsonParser jsonParser = new JsonFactory().createParser(inputStream);
        jsonParser.nextToken(); // get the first token

        if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) {
            jsonParser.nextToken();
            if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT_TYPE)) {
                jsonParser.nextToken();
                final String contentType = jsonParser.getValueAsString();
                if (contentType.equals(getContentType())) {
                    jsonParser.nextToken(); // content
                    if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT)) {
                        jsonParser.nextToken(); // startObject
                        if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) {
                            JsonToken token = jsonParser.nextToken(); // social:key
                            try {
                                while (!token.equals(JsonToken.END_OBJECT)) {
                                    importHelper.extractTopic(jsonParser, resource,
                                            resource.getResourceResolver(), getOperationsService());
                                    token = jsonParser.nextToken();
                                }
                            } catch (final IOException e) {
                                throw new ServletException("Encountered an IOException", e);
                            }
                        } else {
                            throw new ServletException("Start object token not found for content");
                        }
                    } else {
                        throw new ServletException("Content not found");
                    }
                } else {
                    throw new ServletException("Expected forum data");
                }
            } else {
                throw new ServletException("Content Type not specified");
            }
        } else {
            throw new ServletException("Invalid Json format");
        }
    }
}

From source file:com.cedarsoft.serialization.serializers.jackson.ColorSerializer.java

@Nonnull
@Override/*w  w w  . j a v a  2  s.c o m*/
public Color deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion)
        throws IOException, VersionException, JsonProcessingException {
    assert isVersionReadable(formatVersion);
    //red
    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom);
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName2 = parserWrapper.getCurrentName();

    if (!PROPERTY_RED.equals(currentName2)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_RED + "> but was <" + currentName2 + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    int red = parserWrapper.getIntValue();

    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName1 = parserWrapper.getCurrentName();

    if (!PROPERTY_GREEN.equals(currentName1)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_GREEN + "> but was <" + currentName1 + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    int green = parserWrapper.getIntValue();

    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName = parserWrapper.getCurrentName();

    if (!PROPERTY_BLUE.equals(currentName)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_BLUE + "> but was <" + currentName + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    int blue = parserWrapper.getIntValue();

    parserWrapper.nextToken(JsonToken.END_OBJECT);

    return new Color(red, green, blue);
}

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

public void ensureObjectClosed() throws JsonParseException {
    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(parser);

    if (parserWrapper.getCurrentToken() != JsonToken.END_OBJECT) {
        throw new JsonParseException("No consumed everything " + parserWrapper.getCurrentToken(),
                parserWrapper.getCurrentLocation());
    }//from  ww  w. j  a va 2  s  .com
}

From source file:no.ssb.jsonstat.v2.deser.DatasetDeserializer.java

@Override
public DatasetBuildable deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
    if (p.getCurrentToken() == JsonToken.START_OBJECT) {
        p.nextToken();//from   w  w w .  j ava  2 s  .  co m
    }

    Set<String> ids = Collections.emptySet();
    List<Integer> sizes = Collections.emptyList();
    Multimap<String, String> roles = ArrayListMultimap.create();
    Map<String, Dimension.Builder> dims = Collections.emptyMap();
    List<Number> values = Collections.emptyList();

    DatasetBuilder builder = Dataset.create();
    Optional<String> version = Optional.empty();
    Optional<String> clazz = Optional.empty();
    Optional<ObjectNode> extension = Optional.empty();

    while (p.nextValue() != JsonToken.END_OBJECT) {
        switch (p.getCurrentName()) {
        case "label":
            builder.withLabel(_parseString(p, ctxt));
            break;
        case "source":
            builder.withSource(_parseString(p, ctxt));
            break;
        case "href":
            break;
        case "updated":
            Instant updated = parseEcmaDate(_parseString(p, ctxt));
            builder.updatedAt(updated);
            break;
        case "value":
            values = parseValues(p, ctxt);
            break;
        case "dimension":
            if (!version.orElse("1.x").equals("2.0")) {
                dims = Maps.newHashMap();
                // Deal with the id, size and role inside dimension.
                while (p.nextValue() != JsonToken.END_OBJECT) {
                    switch (p.getCurrentName()) {
                    case "id":
                        ids = p.readValueAs(ID_SET);
                        break;
                    case "size":
                        sizes = p.readValueAs(SIZE_LIST);
                        break;
                    case "role":
                        roles = p.readValueAs(ROLE_MULTIMAP);
                        break;
                    default:
                        dims.put(p.getCurrentName(), ctxt.readValue(p, Dimension.Builder.class));
                    }
                }
            } else {
                dims = p.readValueAs(DIMENSION_MAP);
            }
            break;
        case "id":
            ids = p.readValueAs(ID_SET);
            break;
        case "size":
            sizes = p.readValueAs(SIZE_LIST);
            break;
        case "role":
            roles = p.readValueAs(ROLE_MULTIMAP);
            break;
        case "extension":
            extension = Optional.of(ctxt.readValue(p, ObjectNode.class));
            break;
        case "link":
        case "status":
            // TODO
            p.skipChildren();
            break;
        case "version":
            version = Optional.of(_parseString(p, ctxt));
            break;
        case "class":
            // TODO
            clazz = Optional.of(_parseString(p, ctxt));
            break;
        default:
            boolean handled = ctxt.handleUnknownProperty(p, this, Dimension.Builder.class, p.getCurrentName());
            if (!handled)
                p.skipChildren();
            break;
        }
    }

    // Setup roles
    for (Map.Entry<String, String> dimRole : roles.entries()) {
        Dimension.Roles role = Dimension.Roles.valueOf(dimRole.getKey().toUpperCase());
        Dimension.Builder dimension = checkNotNull(dims.get(dimRole.getValue()),
                "could not assign the role {} to the dimension {}. The dimension did not exist", role,
                dimRole.getValue()

        );
        dimension.withRole(role);
    }

    List<Dimension.Builder> orderedDimensions = Lists.newArrayList();
    for (String dimensionName : ids) {
        orderedDimensions.add(dims.get(dimensionName));
    }

    // TODO: Check size?

    // Check ids and add to the data set.
    checkArgument(ids.size() == dims.size(), "dimension and size did not match");

    if (extension.isPresent()) {
        builder.withExtension(extension.get());
    }

    return builder.withDimensions(orderedDimensions).withValues(values);
}

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

@Override
public Object readItem() throws Exception {
    if (rowNumber >= end) {
        return null;
    }//from w  ww  . ja v a  2  s  .c  o  m
    int nestedObjectLevel = 0;
    do {
        token = fromXmlParser.nextToken();
        if (token == null) {
            return null;
        } else if (token == JsonToken.START_OBJECT) {
            nestedObjectLevel++;
            if (nestedObjectLevel == 1) {
                rowNumber++;
            } else if (nestedObjectLevel < 1) {
                throw SupportMessages.MESSAGES.unexpectedJsonContent(fromXmlParser.getCurrentLocation());
            }
            if (rowNumber >= start) {
                break;
            }
        } else if (token == JsonToken.END_OBJECT) {
            nestedObjectLevel--;
        }
    } while (true);
    final Object readValue = xmlMapper.readValue(fromXmlParser, beanType);
    if (!skipBeanValidation) {
        ItemReaderWriterBase.validate(readValue);
    }
    return readValue;
}

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

@Test
public void testNested2() throws IOException {
    JsonParser p = new JsonFactory()
            .createParser("{\"a\":{\"c\":2, \"d\":2.1, \"$type\":\"y\"}, \"$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);// w ww. ja v a  2  s  .co  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());
}

From source file:com.microsoft.azure.storage.table.TableStorageErrorDeserializer.java

/**
 * Parses the error exception details from the Json-formatted response.
 * /*from  ww  w.j  a  va  2 s.com*/
 * @param parser
 *            the {@link JsonParser} to use for parsing
 * @throws IOException
 *             if an error occurs while accessing the stream with Json.
 * @throws JsonParseException
 *             if an error occurs while parsing the stream.
 */
private static HashMap<String, String[]> parseJsonErrorException(JsonParser parser)
        throws JsonParseException, IOException {
    HashMap<String, String[]> additionalDetails = new HashMap<String, String[]>();

    parser.nextToken();
    JsonUtilities.assertIsStartObjectJsonToken(parser);

    parser.nextToken();
    JsonUtilities.assertIsFieldNameJsonToken(parser);

    while (parser.getCurrentToken() != JsonToken.END_OBJECT) {
        if (parser.getCurrentName().equals(TableConstants.ErrorConstants.ERROR_MESSAGE)) {
            parser.nextToken();
            additionalDetails.put(TableConstants.ErrorConstants.ERROR_MESSAGE,
                    new String[] { parser.getValueAsString() });
        } else if (parser.getCurrentName().equals(TableConstants.ErrorConstants.ERROR_EXCEPTION_TYPE)) {
            parser.nextToken();
            additionalDetails.put(TableConstants.ErrorConstants.ERROR_EXCEPTION_TYPE,
                    new String[] { parser.getValueAsString() });
        } else if (parser.getCurrentName().equals(TableConstants.ErrorConstants.ERROR_EXCEPTION_STACK_TRACE)) {
            parser.nextToken();
            additionalDetails.put(Constants.ERROR_EXCEPTION_STACK_TRACE,
                    new String[] { parser.getValueAsString() });
        }
        parser.nextToken();
    }

    return additionalDetails;
}

From source file:msearch.filmlisten.MSFilmlisteLesen.java

public void readFilmListe(String source, final ListeFilme listeFilme, int days) {
    JsonToken jsonToken;/*w  w w .ja  v  a 2  s . 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 (!MSConfig.getStop() && (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) {
                    //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.COLUMN_NAMES_JSON[i] == DatenFilm.FILM_BESCHREIBUNG_NR
                                || DatenFilm.COLUMN_NAMES_JSON[i] == DatenFilm.FILM_WEBSEITE_NR
                                || DatenFilm.COLUMN_NAMES_JSON[i] == DatenFilm.FILM_GEO_NR) {
                            jp.nextToken();
                            continue;
                        }
                    }

                    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].isEmpty()) {
                    datenFilm.arr[DatenFilm.FILM_SENDER_NR] = sender;
                } else {
                    sender = datenFilm.arr[DatenFilm.FILM_SENDER_NR];
                }
                if (datenFilm.arr[DatenFilm.FILM_THEMA_NR].isEmpty()) {
                    datenFilm.arr[DatenFilm.FILM_THEMA_NR] = thema;
                } else {
                    thema = datenFilm.arr[DatenFilm.FILM_THEMA_NR];
                }

                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) {
        listeFilme.clear();
    } catch (Exception ex) {
        MSLog.fehlerMeldung(945123641, MSLog.FEHLER_ART_PROG,
                "MSearchIoXmlFilmlisteLesen.readFilmListe: " + source, ex);
        listeFilme.clear();
    }
    if (MSConfig.getStop()) {
        listeFilme.clear();
    }
    notifyFertig(source, listeFilme);
}

From source file:innovimax.quixproc.datamodel.generator.json.AJSONGenerator.java

public static void main(String[] args)
        throws JsonParseException, IOException, InstantiationException, IllegalAccessException {

    /*//from w ww .j a v  a2s .c  o  m
     * final byte[][] patterns = { // empty object is allowed
     * 
     * "\"A\":1".getBytes(), // first used only once ",\"A\":1".getBytes()
     * }; BoxedArray baA = new BoxedArray(patterns, 1, 2); for (int i = 0; i
     * <Integer.MAX_VALUE; i++) { baA.nextUnique(); }
     * 
     * 
     * System.out.println(display(patterns[1]));
     */
    JsonFactory f = new JsonFactory();
    f.disable(Feature.ALLOW_COMMENTS);
    f.disable(Feature.ALLOW_SINGLE_QUOTES);
    // AGenerator generator = instance(ATreeGenerator.Type.HIGH_DENSITY);
    AGenerator generator = instance(FileExtension.JSON, TreeType.HIGH_NODE_DEPTH, SpecialType.STANDARD);

    InputStream is = generator.getInputStream(50, Unit.MBYTE, Variation.NO_VARIATION);
    if (false) {
        int c;
        while ((c = is.read()) != -1) {
            System.out.println(display((byte) (c & 0xFF)));
        }
    } else {
        JsonParser p = f.createParser(is);
        p.enable(Feature.STRICT_DUPLICATE_DETECTION);

        while (p.nextToken() != JsonToken.END_OBJECT) {
            //
        }
    }
}

From source file:com.boundary.zoocreeper.Restore.java

private void doRestore(JsonParser jp, ZooKeeper zk) throws IOException, KeeperException, InterruptedException {
    expectNextToken(jp, JsonToken.START_OBJECT);
    final Set<String> createdPaths = Sets.newHashSet();
    while (jp.nextToken() != JsonToken.END_OBJECT) {
        final BackupZNode zNode = readZNode(jp, jp.getCurrentName());
        // We are the root
        if (path.isEmpty()) {
            path.add(zNode);/*  ww  w  .  j  a  v a  2  s .  c  o  m*/
        } else {
            for (ListIterator<BackupZNode> it = path.listIterator(path.size()); it.hasPrevious();) {
                final BackupZNode parent = it.previous();
                if (zNode.path.startsWith(parent.path)) {
                    break;
                }
                it.remove();
            }
            path.add(zNode);
        }
        if (zNode.ephemeralOwner != 0) {
            LOGGER.info("Skipping ephemeral ZNode: {}", zNode.path);
            continue;
        }
        if (!zNode.path.startsWith(options.rootPath)) {
            LOGGER.info("Skipping ZNode (not under root path '{}'): {}", options.rootPath, zNode.path);
            continue;
        }
        if (options.isPathExcluded(LOGGER, zNode.path) || !options.isPathIncluded(LOGGER, zNode.path)) {
            continue;
        }
        for (BackupZNode pathComponent : path) {
            if (createdPaths.add(pathComponent.path)) {
                restoreNode(zk, pathComponent);
            }
        }
    }
}