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

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

Introduction

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

Prototype

public abstract String getText() throws IOException, JsonParseException;

Source Link

Document

Method for accessing textual representation of the current token; if no current token (before first call to #nextToken , or after encountering end-of-input), returns null.

Usage

From source file:org.commonjava.maven.atlas.graph.jackson.ProjectRelationshipDeserializer.java

@Override
public T deserialize(final JsonParser jp, final DeserializationContext ctx)
        throws JsonProcessingException, IOException {
    Map<String, Object> ast = new HashMap<String, Object>();
    Map<String, JsonLocation> locations = new HashMap<String, JsonLocation>();

    JsonToken token = jp.getCurrentToken();
    String currentField = null;// w w w  . j a  v  a 2  s .  c o m
    List<String> currentArry = null;

    Logger logger = LoggerFactory.getLogger(getClass());
    do {
        //                logger.info( "Token: {}", token );
        switch (token) {
        case START_ARRAY: {
            //                        logger.info( "Starting array for field: {}", currentField );
            currentArry = new ArrayList<String>();
            break;
        }
        case END_ARRAY:
            //                        logger.info( "Ending array for field: {}", currentField );
            locations.put(currentField, jp.getCurrentLocation());
            ast.put(currentField, currentArry);
            currentArry = null;
            break;
        case FIELD_NAME:
            currentField = jp.getCurrentName();
            break;
        case VALUE_STRING:
            if (currentArry != null) {
                currentArry.add(jp.getText());
            } else {
                locations.put(currentField, jp.getCurrentLocation());
                ast.put(currentField, jp.getText());
            }
            break;
        case VALUE_NUMBER_INT:
            locations.put(currentField, jp.getCurrentLocation());
            ast.put(currentField, jp.getIntValue());
            break;
        case VALUE_NUMBER_FLOAT:
            locations.put(currentField, jp.getCurrentLocation());
            ast.put(currentField, jp.getFloatValue());
            break;
        case VALUE_TRUE:
            locations.put(currentField, jp.getCurrentLocation());
            ast.put(currentField, Boolean.TRUE);
            break;
        case VALUE_FALSE:
            locations.put(currentField, jp.getCurrentLocation());
            ast.put(currentField, Boolean.FALSE);
            break;
        }

        token = jp.nextToken();
    } while (token != JsonToken.END_OBJECT);

    StringBuilder sb = new StringBuilder();
    sb.append("AST is:");
    for (String field : ast.keySet()) {
        Object value = ast.get(field);
        sb.append("\n  ").append(field).append(" = ");
        if (value == null) {
            sb.append("null");
        } else {
            sb.append(value).append("  (type: ").append(value.getClass().getSimpleName()).append(")");
        }
    }

    logger.debug(sb.toString());

    final RelationshipType type = RelationshipType.getType((String) ast.get(RELATIONSHIP_TYPE));

    final String uri = (String) ast.get(POM_LOCATION_URI);
    URI pomLocation;
    if (uri == null) {
        pomLocation = RelationshipUtils.POM_ROOT_URI;
    } else {
        try {
            pomLocation = new URI(uri);
        } catch (final URISyntaxException e) {
            throw new JsonParseException("Invalid " + POM_LOCATION_URI + ": '" + uri + "': " + e.getMessage(),
                    locations.get(POM_LOCATION_URI), e);
        }
    }

    Collection<URI> sources = new HashSet<URI>();
    List<String> srcs = (List<String>) ast.get(SOURCE_URIS);
    if (srcs != null) {
        for (String u : srcs) {
            try {
                sources.add(new URI(u));
            } catch (URISyntaxException e) {
                throw new JsonParseException("Failed to parse source URI: " + u, locations.get(SOURCE_URIS));
            }
        }
    }

    String decl = (String) ast.get(DECLARING_REF);
    final ProjectVersionRef declaring = SimpleProjectVersionRef.parse(decl);

    String tgt = (String) ast.get(TARGET_REF);
    Integer index = (Integer) ast.get(INDEX);
    if (index == null) {
        index = 0;
    }

    // handle null implicitly by comparing to true.
    boolean managed = Boolean.TRUE.equals(ast.get(MANAGED));
    boolean inherited = Boolean.TRUE.equals(ast.get(INHERITED));
    boolean mixin = Boolean.TRUE.equals(ast.get(MIXIN));
    boolean optional = Boolean.TRUE.equals(ast.get(OPTIONAL));

    ProjectRelationship<?, ?> rel = null;
    switch (type) {
    case DEPENDENCY: {
        final ArtifactRef target = SimpleArtifactRef.parse(tgt);

        String scp = (String) ast.get(SCOPE);
        final DependencyScope scope;
        if (scp == null) {
            scope = DependencyScope.compile;
        } else {
            scope = DependencyScope.getScope(scp);
        }

        rel = new SimpleDependencyRelationship(sources, pomLocation, declaring, target, scope, index, managed,
                inherited, optional);
        break;
    }
    case EXTENSION: {
        final ProjectVersionRef target = SimpleProjectVersionRef.parse(tgt);

        rel = new SimpleExtensionRelationship(sources, pomLocation, declaring, target, index, inherited);
        break;
    }
    case PARENT: {
        final ProjectVersionRef target = SimpleProjectVersionRef.parse(tgt);

        rel = new SimpleParentRelationship(sources, declaring, target);
        break;
    }
    case PLUGIN: {
        final ProjectVersionRef target = SimpleProjectVersionRef.parse(tgt);

        Boolean report = (Boolean) ast.get(REPORTING);
        rel = new SimplePluginRelationship(sources, pomLocation, declaring, target, index, managed,
                Boolean.TRUE.equals(report), inherited);
        break;
    }
    case PLUGIN_DEP: {
        String plug = (String) ast.get(PLUGIN_REF);
        if (plug == null) {
            throw new JsonParseException(
                    "No plugin reference (field: " + PLUGIN_REF + ") found in plugin-dependency relationship!",
                    jp.getCurrentLocation());
        }

        final ProjectRef plugin = SimpleProjectRef.parse(plug);
        final ArtifactRef target = SimpleArtifactRef.parse(tgt);

        rel = new SimplePluginDependencyRelationship(sources, pomLocation, declaring, plugin, target, index,
                managed, inherited);
        break;
    }
    case BOM: {
        final ProjectVersionRef target = SimpleProjectVersionRef.parse(tgt);

        rel = new SimpleBomRelationship(sources, pomLocation, declaring, target, index, inherited, mixin);
        break;
    }
    }

    return (T) rel;
}

From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java

@Override
public List<Relative> parseRelatives(final InputStream inputStream) {
    checkNotNull(inputStream);//  www  .j  av  a2s.  c om
    JsonParser parser = null;
    try {
        parser = jsonFactory.createParser(inputStream);
        parser.nextToken();

        List<Relative> relatives = new ArrayList<Relative>();

        String profileId = null;
        String matchId = null;
        double similarity = 0.0d;
        int sharedSegments = 0;
        Relationship relationship = null;
        Relationship userRelationship = null;
        Set<Relationship> range = new HashSet<Relationship>();

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

            if ("id".equals(field)) {
                profileId = parser.getText();
            } else if ("relatives".equals(field)) {
                while (parser.nextToken() != JsonToken.END_ARRAY) {
                    while (parser.nextToken() != JsonToken.END_OBJECT) {
                        String relativeField = parser.getCurrentName();
                        parser.nextToken();

                        if ("match_id".equals(relativeField)) {
                            matchId = parser.getText();
                        } else if ("similarity".equals(relativeField)) {
                            similarity = Double.parseDouble(parser.getText());
                        } else if ("shared_segments".equals(relativeField)) {
                            sharedSegments = parser.getIntValue();
                        } else if ("relationship".equals(relativeField)) {
                            relationship = Relationship.fromDescription(parser.getText());
                        } else if ("user_relationship_code".equals(relativeField)) {
                            String code = parser.getText();
                            userRelationship = code == "null" ? null
                                    : Relationship.fromCode(Integer.parseInt(code));
                        } else if ("predicted_relationship_code".equals(relativeField)) {
                            if (relationship == null) {
                                String code = parser.getText();
                                relationship = code == "null" ? null
                                        : Relationship.fromCode(Integer.parseInt(code));
                            }
                        } else if ("range".equals(relativeField)) {
                            while (parser.nextToken() != JsonToken.END_ARRAY) {
                                range.add(Relationship.fromDescription(parser.getText()));
                            }
                        }
                        // ignored nested fields
                        else if ("family_locations".equals(relativeField)) {
                            while (parser.nextToken() != JsonToken.END_ARRAY) {
                                // ignore
                            }
                        } else if ("family_surnames".equals(relativeField)) {
                            while (parser.nextToken() != JsonToken.END_ARRAY) {
                                // ignore
                            }
                        } else if ("profile_picture_urls".equals(relativeField)) {
                            while (parser.nextToken() != JsonToken.END_OBJECT) {
                                // ignore
                            }
                        }
                    }
                }
                relatives.add(new Relative(profileId, matchId, similarity, sharedSegments, relationship,
                        userRelationship, range));
                matchId = null;
                similarity = 0.0d;
                sharedSegments = 0;
                relationship = null;
                userRelationship = null;
                range.clear();
            }
        }
        return relatives;
    } catch (IOException e) {
        logger.warn("could not parse relatives", e);
    } finally {
        try {
            inputStream.close();
        } catch (Exception e) {
            // ignored
        }
        try {
            parser.close();
        } catch (Exception e) {
            // ignored
        }
    }
    return null;
}

From source file:org.apache.cxf.cwiki.SiteExporter.java

private String renderPage(AbstractPage p) throws ParserConfigurationException, IOException {
    ContentResource content = getContentResource();
    InputStream ins = content.getContentById(p.getId(), null, null, "body.export_view")
            .readEntity(InputStream.class);

    JsonParser parser = new JsonFactory().createParser(ins);
    JsonToken tok = parser.nextToken();//from www.  ja  v  a2s.  c om
    boolean inExportView = false;
    while (tok != null) {
        if (tok == JsonToken.FIELD_NAME) {
            if (parser.getCurrentName().equals("export_view")) {
                inExportView = true;
            }
        } else if (tok == JsonToken.VALUE_STRING && inExportView && parser.getCurrentName().equals("value")) {
            return "<div id='ConfluenceContent'>" + parser.getText() + "</div>";
        }
        tok = parser.nextToken();
    }
    System.out.println("No text for page \"" + p.getTitle() + "\"");
    return "";
}

From source file:com.google.openrtb.json.OpenRtbJsonReader.java

protected void readDataField(JsonParser par, Data.Builder data, String fieldName) throws IOException {
    switch (fieldName) {
    case "id":
        data.setId(par.getText());
        break;//  w  ww  .  jav  a 2  s. c om
    case "name":
        data.setName(par.getText());
        break;
    case "segment":
        for (startArray(par); endArray(par); par.nextToken()) {
            data.addSegment(readSegment(par));
        }
        break;
    default:
        readOther(data, par, fieldName);
    }
}

From source file:org.hyperledger.dropwizard.hocon.HoconDeserializer.java

protected ConfigList deserializeArray(JsonParser jp, DeserializationContext ctxt) throws IOException {

    List<Object> values = new ArrayList<>();

    JsonToken t;// w w  w  . j a  v a  2s . co  m
    while ((t = jp.nextToken()) != JsonToken.END_ARRAY) {
        switch (t) {
        case START_ARRAY:
            values.add(deserializeArray(jp, ctxt).unwrapped());
            break;
        case START_OBJECT:
            values.add(deserializeObject(jp, ctxt).unwrapped());
            break;
        case VALUE_FALSE:
            values.add(false);
            break;
        case VALUE_TRUE:
            values.add(true);
            break;
        case VALUE_NULL:
            values.add(null);
            break;
        case VALUE_NUMBER_FLOAT:
            if (jp.getNumberType() == JsonParser.NumberType.BIG_DECIMAL) {
                values.add(jp.getDecimalValue());
            } else {
                values.add(jp.getDoubleValue());
            }
            break;
        case VALUE_NUMBER_INT:
            // very cumbersome... but has to be done
            switch (jp.getNumberType()) {
            case LONG:
                values.add(jp.getLongValue());
                break;
            case INT:
                values.add(jp.getIntValue());
                break;
            default:
                values.add(jp.getBigIntegerValue());
            }
            break;
        case VALUE_STRING:
            values.add(jp.getText());
            break;
        default:
            throw ctxt.mappingException(_valueClass);
        }
    }
    return ConfigValueFactory.fromIterable(values);
}

From source file:com.google.openrtb.json.OpenRtbJsonReader.java

protected void readSegmentField(JsonParser par, Segment.Builder segment, String fieldName) throws IOException {
    switch (fieldName) {
    case "id":
        segment.setId(par.getText());
        break;/*from  w  ww.jav a2 s  .co m*/
    case "name":
        segment.setName(par.getText());
        break;
    case "value":
        segment.setValue(par.getText());
        break;
    default:
        readOther(segment, par, fieldName);
    }
}

From source file:com.google.openrtb.json.OpenRtbJsonReader.java

protected void readDealField(JsonParser par, Deal.Builder deal, String fieldName) throws IOException {
    switch (fieldName) {
    case "id":
        deal.setId(par.getText());
        break;//  ww w . java 2s.  c  o  m
    case "bidfloor":
        deal.setBidfloor(par.getValueAsDouble());
        break;
    case "bidfloorcur":
        deal.setBidfloorcur(par.getText());
        break;
    case "wseat":
        for (startArray(par); endArray(par); par.nextToken()) {
            deal.addWseat(par.getText());
        }
        break;
    case "wadomain":
        for (startArray(par); endArray(par); par.nextToken()) {
            deal.addWadomain(par.getText());
        }
        break;
    case "at": {
        AuctionType value = AuctionType.valueOf(par.getIntValue());
        if (checkEnum(value)) {
            deal.setAt(value);
        }
    }
        break;
    default:
        readOther(deal, par, fieldName);
    }
}

From source file:com.google.openrtb.json.OpenRtbJsonReader.java

protected void readUserField(JsonParser par, User.Builder user, String fieldName) throws IOException {
    switch (fieldName) {
    case "id":
        user.setId(par.getText());
        break;/*  w  ww .  ja va2s.  c om*/
    case "buyerid": // Compatibility with broken 2.3 spec; fixed in 2.3.1
    case "buyeruid":
        user.setBuyeruid(par.getText());
        break;
    case "yob":
        user.setYob(par.getIntValue());
        break;
    case "gender": {
        Gender value = Gender.forCode(par.getText());
        if (checkEnum(value)) {
            user.setGender(value.code());
        }
        break;
    }
    case "keywords":
        user.setKeywords(readCsvString(par));
        break;
    case "customdata":
        user.setCustomdata(par.getText());
        break;
    case "geo":
        user.setGeo(readGeo(par));
        break;
    case "data":
        for (startArray(par); endArray(par); par.nextToken()) {
            user.addData(readData(par));
        }
        break;
    default:
        readOther(user, par, fieldName);
    }
}

From source file:com.google.openrtb.json.OpenRtbJsonReader.java

protected void readProducerField(JsonParser par, Producer.Builder producer, String fieldName)
        throws IOException {
    switch (fieldName) {
    case "id":
        producer.setId(par.getText());
        break;// w w w  .  j a  v  a  2s  .  com
    case "name":
        producer.setName(par.getText());
        break;
    case "cat":
        for (startArray(par); endArray(par); par.nextToken()) {
            String cat = par.getText();
            if (checkContentCategory(cat)) {
                producer.addCat(cat);
            }
        }
        break;
    case "domain":
        producer.setDomain(par.getText());
        break;
    default:
        readOther(producer, par, fieldName);
    }
}

From source file:com.google.openrtb.json.OpenRtbJsonReader.java

protected void readBidResponseField(JsonParser par, BidResponse.Builder resp, String fieldName)
        throws IOException {
    switch (fieldName) {
    case "id":
        resp.setId(par.getText());
        break;/* w w  w .  j  a  v a2 s .c  o m*/
    case "seatbid":
        for (startArray(par); endArray(par); par.nextToken()) {
            resp.addSeatbid(readSeatBid(par));
        }
        break;
    case "bidid":
        resp.setBidid(par.getText());
        break;
    case "cur":
        resp.setCur(par.getText());
        break;
    case "customdata":
        resp.setCustomdata(par.getText());
        break;
    case "nbr": {
        NoBidReason value = NoBidReason.valueOf(par.getIntValue());
        if (checkEnum(value)) {
            resp.setNbr(value);
        }
    }
        break;
    default:
        readOther(resp, par, fieldName);
    }
}