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.lobid.lodmill.JsonDecoder.java

private void processTokens(JsonToken token) throws IOException, JsonParseException {
    JsonToken currentToken = token;//from ww  w. j a  va  2 s  . c o m
    while (currentToken != null) {
        if (JsonToken.START_OBJECT == currentToken) {
            if (!STARTED) {
                getReceiver().startRecord("");
                STARTED = true;
            }
            currentToken = processRecordContent(this.jsonParser.nextToken());
        }
        LOG.debug("############################ End");
        if (STARTED & !oneRecord) {
            getReceiver().endRecord();
            STARTED = false;
        }
    }
}

From source file:com.sdl.odata.unmarshaller.json.core.JsonProcessor.java

/**
 * Process all things that do not contain special ODataTags.
 *
 * @param jsonParser the parser//from ww w  . ja  va2 s  .c  o m
 * @throws ODataUnmarshallingException If unable to unmarshall
 * @throws IOException If unable to read input parser
 */
private void process(JsonParser jsonParser) throws IOException, ODataUnmarshallingException {
    if (jsonParser.getCurrentToken() == JsonToken.FIELD_NAME) {
        LOG.info("Starting to parse {} token", jsonParser.getCurrentName());
        String key = jsonParser.getCurrentName();
        jsonParser.nextToken();

        JsonToken token = jsonParser.getCurrentToken();
        if (token == JsonToken.START_ARRAY) {
            if (JsonConstants.VALUE.equals(key)) {
                throw new ODataUnmarshallingException("Feed is not supported");
            }
            values.put(key, getCollectionValue(jsonParser));
        } else if (token == JsonToken.START_OBJECT) {
            values.put(key, getEmbeddedObject(jsonParser));
        } else {
            if (token.equals(JsonToken.VALUE_NULL)) {
                values.put(key, null);
            } else {
                values.put(key, jsonParser.getText());
            }
        }
    }
}

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

public BsonObjectTraversingParser(JacksonDBCollection dbCollection, BSONObject o, ObjectCodec codec) {
    super(0);/*from   w  ww  .  ja  v  a 2 s  .c  o m*/
    this.dbCollection = dbCollection;
    objectCodec = codec;
    if (o instanceof Iterable) {
        nextToken = JsonToken.START_ARRAY;
        nodeCursor = new BsonObjectCursor.ArrayCursor((Iterable) o, null);
    } else {
        nextToken = JsonToken.START_OBJECT;
        nodeCursor = new BsonObjectCursor.ObjectCursor(o, null);
    }
}

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

/**
 * The post operation accepts a json file, parses it and applies the profile scores to local profiles
 * @param request - the request//  w ww  .j  av a  2s .c  o m
 * @param response - the response
 * @throws javax.servlet.ServletException
 * @throws java.io.IOException
 */
protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response)
        throws ServletException, IOException {

    final ResourceResolver resolver = request.getResourceResolver();

    UGCImportHelper.checkUserPrivileges(resolver, rrf);

    final RequestParameter[] fileRequestParameters = request.getRequestParameters("file");
    if (fileRequestParameters != null && fileRequestParameters.length > 0
            && !fileRequestParameters[0].isFormField()
            && fileRequestParameters[0].getFileName().endsWith(".json")) {
        final InputStream inputStream = fileRequestParameters[0].getInputStream();
        final JsonParser jsonParser = new JsonFactory().createParser(inputStream);
        JsonToken token = jsonParser.nextToken(); // get the first token
        if (token.equals(JsonToken.START_OBJECT)) {
            try {
                final UserPropertiesManager userManager = userPropertiesService
                        .createUserPropertiesManager(resolver);
                importFile(jsonParser, userManager, resolver);
            } catch (RepositoryException e) {
                throw new ServletException("Unable to communicate with Jcr repository", e);
            } catch (final Exception e) {
                throw new ServletException("Problem!", e);
            }
        } else {
            throw new ServletException("Expected a start object token, got " + token);
        }
    } else {
        throw new ServletException("Expected to get a json file in post request");
    }
}

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  ww  w.j  av  a 2 s. c  o 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:com.netflix.spectator.tdigest.Json.java

private TDigestMeasurement decode(JsonParser parser) throws IOException {
    expect(parser, JsonToken.START_OBJECT);
    require("name".equals(parser.nextFieldName()), "expected name");
    Id id = registry.createId(parser.nextTextValue());
    while (parser.nextToken() == JsonToken.FIELD_NAME) {
        id = id.withTag(parser.getText(), parser.nextTextValue());
    }/*from   ww w .j av  a 2s . c  om*/
    long t = parser.nextLongValue(-1L);
    expect(parser, JsonToken.VALUE_EMBEDDED_OBJECT);
    TDigest v = AVLTreeDigest.fromBytes(ByteBuffer.wrap(parser.getBinaryValue()));
    expect(parser, JsonToken.END_ARRAY);
    return new TDigestMeasurement(id, t, v);
}

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  .  j a va 2  s. c  om
        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:org.mongojack.internal.object.BsonObjectCursor.java

private static JsonToken getToken(Object o) {
    if (o == null) {
        return JsonToken.VALUE_NULL;
    } else if (o instanceof Iterable) {
        return JsonToken.START_ARRAY;
    } else if (o instanceof BSONObject) {
        return JsonToken.START_OBJECT;
    } else if (o instanceof Number) {
        if (o instanceof Double || o instanceof Float || o instanceof BigDecimal) {
            return JsonToken.VALUE_NUMBER_FLOAT;
        } else {/*from w  ww .  j av a 2 s . co m*/
            return JsonToken.VALUE_NUMBER_INT;
        }
    } else if (o instanceof Boolean) {
        if ((Boolean) o) {
            return JsonToken.VALUE_TRUE;
        } else {
            return JsonToken.VALUE_FALSE;
        }
    } else if (o instanceof CharSequence) {
        return JsonToken.VALUE_STRING;
    } else if (o instanceof ObjectId) {
        return JsonToken.VALUE_EMBEDDED_OBJECT;
    } else if (o instanceof DBRef) {
        return JsonToken.VALUE_EMBEDDED_OBJECT;
    } else if (o instanceof Date) {
        return JsonToken.VALUE_EMBEDDED_OBJECT;
    } else if (o instanceof byte[]) {
        return JsonToken.VALUE_EMBEDDED_OBJECT;
    } else {
        throw new IllegalStateException("Don't know how to parse type: " + o.getClass());
    }
}

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

@Override
public Object readItem() throws Exception {
    if (rowNumber >= end) {
        return null;
    }/*from ww w.  j  a  v  a  2  s.c om*/
    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.cedarsoft.couchdb.io.ViewResponseSerializer.java

public <K, V, D> ViewResponse<K, V, D> deserialize(@Nonnull JacksonSerializer<? super K> keySerializer,
        @Nonnull JacksonSerializer<? super V> valueSerializer,
        @Nullable JacksonSerializer<? extends D> documentSerializer, @Nonnull InputStream in)
        throws IOException, InvalidTypeException {
    JsonFactory jsonFactory = JacksonSupport.getJsonFactory();
    JsonParser parser = jsonFactory.createJsonParser(in);

    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(parser);
    parserWrapper.nextToken(JsonToken.START_OBJECT);

    parserWrapper.nextToken(JsonToken.FIELD_NAME);
    //If reduced, no total rows and no offset are availlable!

    String fieldName = parser.getText();

    int totalRows = -1;
    int offset = -1;
    while (!fieldName.equals(PROPERTY_ROWS)) {
        if (fieldName.equals(PROPERTY_TOTAL_ROWS)) {
            parserWrapper.nextToken(JsonToken.VALUE_NUMBER_INT);
            totalRows = parser.getIntValue();
        }/*from w ww .j  a  v  a 2 s . co  m*/

        if (fieldName.equals(PROPERTY_OFFSET)) {
            parserWrapper.nextToken(JsonToken.VALUE_NUMBER_INT);
            offset = parser.getIntValue();
        }

        parserWrapper.nextToken(JsonToken.FIELD_NAME);
        fieldName = parser.getText();
    }

    //Now the rows...
    parserWrapper.nextToken(JsonToken.START_ARRAY);

    List<Row<K, V, D>> deserialized = new ArrayList<>();
    while (parser.nextToken() != JsonToken.END_ARRAY) {
        Row<K, V, D> deserializedRow = rowSerializer.deserialize(keySerializer, valueSerializer,
                documentSerializer, parser);
        deserialized.add(deserializedRow);
    }

    return new ViewResponse<>(totalRows, offset, deserialized);
}