List of usage examples for com.fasterxml.jackson.core JsonParser getText
public abstract String getText() throws IOException, JsonParseException;
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); } }