Example usage for com.fasterxml.jackson.core JsonParser nextToken

List of usage examples for com.fasterxml.jackson.core JsonParser nextToken

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonParser nextToken.

Prototype

public abstract JsonToken nextToken() throws IOException, JsonParseException;

Source Link

Document

Main iteration method, which will advance stream enough to determine type of the next token, if any.

Usage

From source file:io.progix.dropwizard.patch.explicit.PatchInstructionDeserializer.java

/**
 * This method is responsible for deserialization of a {@link PatchInstruction}
 * <p/>//  w  w w.  j  a  v a 2  s.  c o  m
 * The value in a patch instruction is mapped to a TreeMap and can be later converted to a class of choice using
 * {@link JsonPatchValue}
 *
 * @see JsonDeserializer
 */
@Override
public PatchInstruction deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    untypedObjectDeserializer.resolve(ctxt);

    JsonNode node = jp.getCodec().readTree(jp);

    PatchOperation operation = PatchOperation.valueOf(node.get("op").asText().toUpperCase());

    String path = node.get("path").asText();

    String from = null;
    JsonNode fromNode = node.get("from");
    if (fromNode != null) {
        from = fromNode.asText();
    }

    List<Object> values = null;
    JsonNode valueNode = node.get("value");
    if (valueNode != null) {
        values = new ArrayList<>();
        if (valueNode.isArray()) {
            Iterator<JsonNode> iterator = valueNode.elements();
            while (iterator.hasNext()) {
                JsonNode elementNode = iterator.next();
                JsonParser p = elementNode.traverse();
                if (!p.hasCurrentToken()) {
                    p.nextToken();
                }
                Object element = untypedObjectDeserializer.deserialize(p, ctxt);
                values.add(element);
            }
        } else {
            JsonParser p = valueNode.traverse();
            if (!p.hasCurrentToken()) {
                p.nextToken();
            }
            Object value = untypedObjectDeserializer.deserialize(p, ctxt);
            values.add(value);
        }
    }

    return new PatchInstruction(operation, path, values, from);
}

From source file:org.o3project.ocnrm.odenos.linklayerizer.LinkLayerizerBoundarySet.java

public Map<String, LinklayerizerBoundary> changeJSONBoundariesToBoundaries(String jsonBoundary, String seqNo) {

    logger.info(seqNo + "\t" + "changeJSONBoundariestoBoundaries Start");

    linklayerizerBoundaryMap = new HashMap<String, LinklayerizerBoundary>();
    try {//from   w w w .j a v a  2 s  .co  m
        JsonFactory factory = new JsonFactory();
        JsonParser jp = factory.createParser(jsonBoundary);
        jp.nextToken();
        while (jp.nextToken() != JsonToken.END_OBJECT) {
            String mapKey = jp.getCurrentName();
            LinklayerizerBoundary llb = new LinklayerizerBoundary();
            jp.nextToken();
            while (jp.nextToken() != JsonToken.END_OBJECT) {
                String fieldname = jp.getCurrentName();
                jp.nextToken();
                if ("boundary_id".equals(fieldname)) {
                    llb.setBoundary_id(jp.getText());
                } else if ("lower_nw".equals(fieldname)) {
                    llb.setLower_nw(jp.getText());
                } else if ("lower_nw_node".equals(fieldname)) {
                    llb.setLower_nw_node(jp.getText());
                } else if ("lower_nw_port".equals(fieldname)) {
                    llb.setLower_nw_port(jp.getText());
                } else if ("upper_nw".equals(fieldname)) {
                    llb.setUpper_nw(jp.getText());
                } else if ("upper_nw_node".equals(fieldname)) {
                    llb.setUpper_nw_node(jp.getText());
                } else if ("upper_nw_port".equals(fieldname)) {
                    llb.setUpper_nw_port(jp.getText());
                } else if ("type".equals(fieldname)) {
                    continue;
                } else {
                    throw new IllegalStateException(seqNo + "\t" + "Unrecognized field '" + fieldname + "'!");
                }
            }
            linklayerizerBoundaryMap.put(mapKey, llb);
        }
        jp.close();
    } catch (JsonParseException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    logger.info(seqNo + "\t" + "changeJSONBoundariestoBoundaries End");
    return linklayerizerBoundaryMap;
}

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

/**
 * The post operation accepts a json file, parses it and applies the social graph relationships to local profiles
 * @param request - the request//from  w  ww  .  j a v  a 2  s  .com
 * @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)) {
            importFile(jsonParser, request);
        } 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:com.unboundid.scim2.server.providers.DotSearchFilter.java

/**
 * {@inheritDoc}//from w w w. ja v  a2 s .  c o m
 */
public void filter(final ContainerRequestContext requestContext) throws IOException {
    if (requestContext.getMethod().equals(HttpMethod.POST)
            && requestContext.getUriInfo().getPath().endsWith(SEARCH_WITH_POST_PATH_EXTENSION))

    {
        if (requestContext.getMediaType() == null
                || !(requestContext.getMediaType().isCompatible(ServerUtils.MEDIA_TYPE_SCIM_TYPE)
                        || requestContext.getMediaType().isCompatible(MediaType.APPLICATION_JSON_TYPE))) {
            throw new NotSupportedException();
        }

        ObjectReader reader = JsonUtils.getObjectReader().forType(SearchRequest.class);
        JsonParser p = reader.getFactory().createParser(requestContext.getEntityStream());
        if (p.nextToken() == null) {
            throw new BadRequestException(new NoContentException("Empty Entity"));
        }
        SearchRequest searchRequest = reader.readValue(p);
        UriBuilder builder = requestContext.getUriInfo().getBaseUriBuilder();
        List<PathSegment> pathSegments = requestContext.getUriInfo().getPathSegments();
        for (int i = 0; i < pathSegments.size() - 1; i++) {
            builder.path(pathSegments.get(i).getPath());
        }
        if (searchRequest.getAttributes() != null) {
            builder.queryParam(QUERY_PARAMETER_ATTRIBUTES,
                    StaticUtils.collectionToString(searchRequest.getAttributes(), ","));
        }
        if (searchRequest.getExcludedAttributes() != null) {
            builder.queryParam(QUERY_PARAMETER_EXCLUDED_ATTRIBUTES,
                    StaticUtils.collectionToString(searchRequest.getExcludedAttributes(), ","));
        }
        if (searchRequest.getFilter() != null) {
            builder.queryParam(QUERY_PARAMETER_FILTER, searchRequest.getFilter());
        }
        if (searchRequest.getSortBy() != null) {
            builder.queryParam(QUERY_PARAMETER_SORT_BY, searchRequest.getSortBy());
        }
        if (searchRequest.getSortOrder() != null) {
            builder.queryParam(QUERY_PARAMETER_SORT_ORDER, searchRequest.getSortOrder().getName());
        }
        if (searchRequest.getStartIndex() != null) {
            builder.queryParam(QUERY_PARAMETER_PAGE_START_INDEX, searchRequest.getStartIndex());
        }
        if (searchRequest.getCount() != null) {
            builder.queryParam(QUERY_PARAMETER_PAGE_SIZE, searchRequest.getCount());
        }
        requestContext.setRequestUri(builder.build());
        requestContext.setMethod(HttpMethod.GET);
    }
}

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

private void assertNextField(String expFieldName, JsonParser p) throws IOException {
    assertEquals(JsonToken.FIELD_NAME, p.nextToken());
    assertEquals(expFieldName, p.getText());
}

From source file:com.netflix.aegisthus.tools.AegisthusSerializer.java

public Map<String, Object> deserialize(String data) throws IOException {
    try {//from   w ww  .  jav a  2 s  .com
        Map<String, Object> map = new LinkedHashMap<String, Object>();
        JsonParser jp = jsonFactory.createJsonParser(data);
        jp.nextToken(); // Object
        jp.nextToken(); // key
        map.put(KEY, new DataByteArray(jp.getCurrentName().getBytes()));
        jp.nextToken(); // object
        while (jp.nextToken() != JsonToken.END_OBJECT) {
            String field = jp.getCurrentName();
            if (DELETEDAT.equals(field.toUpperCase())) {
                jp.nextToken();
                map.put(DELETEDAT, jp.getLongValue());
            } else {
                jp.nextToken();
                while (jp.nextToken() != JsonToken.END_ARRAY) {
                    List<Object> cols = new ArrayList<Object>();
                    jp.nextToken();
                    String name = jp.getText();
                    cols.add(name);
                    jp.nextToken();
                    cols.add(new DataByteArray(jp.getText().getBytes()));
                    jp.nextToken();
                    cols.add(jp.getLongValue());
                    if (jp.nextToken() != JsonToken.END_ARRAY) {
                        String status = jp.getText();
                        cols.add(status);
                        if ("e".equals(status)) {
                            jp.nextToken();
                            cols.add(jp.getLongValue());
                            jp.nextToken();
                            cols.add(jp.getLongValue());
                        } else if ("c".equals(status)) {
                            jp.nextToken();
                            cols.add(jp.getLongValue());
                        }
                        jp.nextToken();
                    }
                    map.put(name, cols);
                }
            }
        }

        return map;
    } catch (IOException e) {
        LOG.error(data);
        throw e;
    }
}

From source file:net.troja.eve.crest.CrestDataProcessor.java

private <T> String processData(final CrestApiProcessor<T> processor, final CrestContainer<T> container,
        final String data) {
    String next = null;//from w w w .  ja  va  2s. c o m
    try {
        final JsonFactory parserFactory = new JsonFactory();
        final JsonParser jsonParser = parserFactory.createParser(data);
        jsonParser.nextToken();
        while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
            final String fieldname = jsonParser.getCurrentName();
            jsonParser.nextToken();
            switch (fieldname) {
            case "totalCount":
                container.setTotalCount(jsonParser.getIntValue());
                break;
            case "pageCount":
                container.setPageCount(jsonParser.getIntValue());
                break;
            case "items":
                processItems(processor, container, jsonParser);
                break;
            case "next":
                next = processNext(jsonParser);
                break;
            default:
                break;
            }
        }
    } catch (final IOException e) {
        if (LOGGER.isWarnEnabled()) {
            LOGGER.warn("Problems while parsing json data: " + e.getMessage(), e);
        }
    }
    return next;
}

From source file:org.labkey.freezerpro.export.FreezerProCommandResonse.java

/**
 * Position the parser to the start of the data array object
 * @param parser//  w w w .ja  va 2 s  .  c o  m
 * @param dataNodeName
 * @return
 * @throws IOException
 */
protected boolean ensureDataNode(JsonParser parser, String dataNodeName) throws IOException {
    JsonToken token = parser.nextToken();
    //JsonUtil.expectObjectStart(parser);
    while (token != JsonToken.END_OBJECT) {
        token = parser.nextToken();
        if (token == JsonToken.FIELD_NAME) {
            String fieldName = parser.getCurrentName();
            if (dataNodeName.equals(fieldName)) {
                parser.nextToken();
                return true;
            } else if (TOTAL_FIELD_NAME.equalsIgnoreCase(fieldName)) {
                JsonToken totalToken = parser.nextToken();
                if (totalToken == JsonToken.VALUE_NUMBER_INT) {
                    _totalRecords = parser.readValueAs(Integer.class);
                }
            }
        }
    }
    return false;
}

From source file:org.killbill.billing.plugin.meter.timeline.persistent.Replayer.java

@VisibleForTesting
public void read(final File file, final Function<SourceSamplesForTimestamp, Void> fn) throws IOException {
    final JsonParser smileParser = smileFactory.createJsonParser(file);
    if (smileParser.nextToken() != JsonToken.START_ARRAY) {
        return;//from w  w  w  .ja  va 2 s .c o m
    }

    while (!shuttingDown.get() && smileParser.nextToken() != JsonToken.END_ARRAY) {
        final SourceSamplesForTimestamp sourceSamplesForTimestamp = smileParser
                .readValueAs(SourceSamplesForTimestamp.class);
        fn.apply(sourceSamplesForTimestamp);
    }

    smileParser.close();
}

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

private void assertNextIntValue(int exp, JsonParser p) throws IOException {
    assertEquals(JsonToken.VALUE_NUMBER_INT, p.nextToken());
    assertEquals(exp, p.getIntValue());/*from  w w w.  j  a  v  a  2s  . co  m*/
}