List of usage examples for com.fasterxml.jackson.core JsonParser nextToken
public abstract JsonToken nextToken() throws IOException, JsonParseException;
From source file:org.emfjson.jackson.tests.custom.CustomDeserializersTest.java
@Test public void testDeserializeReferenceAsStrings() throws JsonProcessingException { EMFModule module = new EMFModule(); module.configure(EMFModule.Feature.OPTION_USE_ID, true); module.configure(EMFModule.Feature.OPTION_SERIALIZE_TYPE, false); module.setReferenceDeserializer(new JsonDeserializer<ReferenceEntry>() { @Override//from w ww .j av a 2 s .c o m public ReferenceEntry deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { final EObject parent = EMFContext.getParent(ctxt); final EReference reference = EMFContext.getReference(ctxt); if (p.getCurrentToken() == JsonToken.FIELD_NAME) { p.nextToken(); } return new ReferenceEntry.Base(parent, reference, p.getText()); } }); mapper.registerModule(module); JsonNode data = mapper.createArrayNode() .add(mapper.createObjectNode().put("@id", "1").put("name", "Paul").put("uniqueFriend", "2")) .add(mapper.createObjectNode().put("@id", "2").put("name", "Franck")); Resource resource = mapper.reader().withAttribute(RESOURCE_SET, resourceSet) .withAttribute(ROOT_ELEMENT, ModelPackage.Literals.USER).treeToValue(data, Resource.class); assertEquals(2, resource.getContents().size()); User u1 = (User) resource.getContents().get(0); User u2 = (User) resource.getContents().get(1); assertSame(u2, u1.getUniqueFriend()); }
From source file:com.msopentech.odatajclient.engine.data.metadata.edm.EntitySetDeserializer.java
@Override protected AbstractEntitySet doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final AbstractEntitySet entitySet = ODataVersion.V3 == client.getWorkingVersion() ? new com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntitySet() : new com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntitySet(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { entitySet.setName(jp.nextTextValue()); } else if ("EntityType".equals(jp.getCurrentName())) { entitySet.setEntityType(jp.nextTextValue()); } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntitySet) entitySet) .setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) { jp.nextToken();/*from w w w.j a v a2 s. c o m*/ ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntitySet) entitySet) .getNavigationPropertyBindings() .add(jp.getCodec().readValue(jp, NavigationPropertyBinding.class)); } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntitySet) entitySet) .setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return entitySet; }
From source file:com.adobe.communities.ugc.migration.importer.ScoresImportServlet.java
private void importFile(final JsonParser jsonParser, final UserPropertiesManager userManager, final ResourceResolver resolver) throws ServletException, IOException, RepositoryException { Map<String, Boolean> scoreTypes = getScoreTypes(resolver); JsonToken token = jsonParser.nextToken(); while (!token.equals(JsonToken.END_OBJECT)) { final String authId = jsonParser.getCurrentName(); token = jsonParser.nextToken();/*from w w w . j ava 2s. c o m*/ if (!token.equals(JsonToken.START_OBJECT)) { throw new ServletException("Expected to see start object, got " + token); } final Map<String, Long> scores = new HashMap<String, Long>(); token = jsonParser.nextToken(); while (!token.equals(JsonToken.END_OBJECT)) { final String scoreName = jsonParser.getCurrentName(); jsonParser.nextToken(); final Long scoreValue = jsonParser.getLongValue(); scores.put(scoreName, scoreValue); if (!scoreTypes.containsKey(scoreName)) { LOG.warn( "A score of type [{}] was imported for [{}], but that score type hasn't been configured " + "on this server", scoreName, authId); } token = jsonParser.nextToken(); } updateProfileScore(authId, scores, userManager, resolver); token = jsonParser.nextToken(); } }
From source file:org.oscim.tiling.source.geojson.GeoJsonTileDecoder.java
private void parseFeature(JsonParser jp) throws JsonParseException, IOException { mMapElement.clear();/* w w w . jav a 2 s . c o m*/ mMapElement.tags.clear(); mTagMap.clear(); for (JsonToken t; (t = jp.nextToken()) != null;) { if (t == FIELD_NAME) { if (match(jp, FIELD_GEOMETRY)) { if (jp.nextToken() == START_OBJECT) parseGeometry(jp); } if (match(jp, FIELD_PROPERTIES)) { if (jp.nextToken() == START_OBJECT) parseProperties(jp); } continue; } if (t == END_OBJECT) break; } //add tag information mTileSource.decodeTags(mMapElement, mTagMap); if (mMapElement.tags.numTags == 0) return; mTileSource.postGeomHook(mMapElement); if (mMapElement.type == GeometryType.NONE) return; //process this element mTileDataSink.process(mMapElement); }
From source file:com.msopentech.odatajclient.engine.data.metadata.edm.EnumTypeDeserializer.java
@Override protected AbstractEnumType doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final AbstractEnumType enumType = ODataVersion.V3 == client.getWorkingVersion() ? new com.msopentech.odatajclient.engine.data.metadata.edm.v3.EnumType() : new com.msopentech.odatajclient.engine.data.metadata.edm.v4.EnumType(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { enumType.setName(jp.nextTextValue()); } else if ("UnderlyingType".equals(jp.getCurrentName())) { enumType.setUnderlyingType(jp.nextTextValue()); } else if ("IsFlags".equals(jp.getCurrentName())) { enumType.setFlags(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("Member".equals(jp.getCurrentName())) { jp.nextToken();/*from ww w . jav a 2s.c om*/ if (enumType instanceof com.msopentech.odatajclient.engine.data.metadata.edm.v3.EnumType) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v3.EnumType) enumType).getMembers() .add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v3.Member.class)); } else { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EnumType) enumType).getMembers() .add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v4.Member.class)); } } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EnumType) enumType) .setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return enumType; }
From source file:org.emfjson.jackson.databind.deser.EObjectDeserializer.java
@Override public EObject deserialize(JsonParser jp, DeserializationContext ctxt, EObject intoValue) throws IOException { if (intoValue == null) { return null; }/*from ww w.j a va 2s .c o m*/ EMFContext.prepare(ctxt); EObjectPropertyMap propertyMap = builder.construct(intoValue.eClass()); final Resource resource = getResource(ctxt); while (jp.nextToken() != JsonToken.END_OBJECT) { final String field = jp.getCurrentName(); final EObjectProperty property = propertyMap.findProperty(field); if (property != null) { property.deserializeAndSet(jp, intoValue, ctxt, resource); } else { handleUnknownProperty(jp, resource, ctxt); } } return intoValue; }
From source file:org.oscim.tiling.source.geojson.GeoJsonTileDecoder.java
private void parseGeometry(JsonParser jp) throws JsonParseException, IOException { boolean multi = false; GeometryType type = GeometryType.NONE; for (JsonToken t; (t = jp.nextToken()) != null;) { if (t == FIELD_NAME) { if (match(jp, FIELD_COORDINATES)) { if (jp.nextToken() != START_ARRAY) continue; if (multi) { parseMulti(jp, type); } else { if (type == GeometryType.POLY) parsePolygon(jp); if (type == GeometryType.LINE) parseLineString(jp); if (type == GeometryType.POINT) parseCoordinate(jp); }/*w w w . j a v a 2s . c o m*/ } else if (match(jp, FIELD_TYPE)) { multi = false; jp.nextToken(); if (match(jp, LINETRING)) type = GeometryType.LINE; else if (match(jp, POLYGON)) type = GeometryType.POLY; else if (match(jp, POINT)) type = GeometryType.POINT; else if (match(jp, MULTI_LINESTRING)) { type = GeometryType.LINE; multi = true; } else if (match(jp, MULTI_POLYGON)) { type = GeometryType.POLY; multi = true; } else if (match(jp, MULTI_POINT)) { type = GeometryType.POINT; multi = true; } if (type == GeometryType.POINT) mMapElement.startPoints(); } continue; } if (t == END_OBJECT) break; } }
From source file:com.basho.riak.client.raw.http.NamedErlangFunctionDeserializer.java
@Override public NamedErlangFunction deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonToken token = jp.getCurrentToken(); if (JsonToken.START_OBJECT.equals(token)) { String mod = null;//from w w w. j av a 2s . c o m String fun = null; while (!JsonToken.END_OBJECT.equals(token)) { String field = jp.getCurrentName(); if (Constants.FL_SCHEMA_FUN_MOD.equals(field)) { jp.nextToken(); mod = jp.getText(); } else if (Constants.FL_SCHEMA_FUN_FUN.equals(field)) { jp.nextToken(); fun = jp.getText(); } token = jp.nextToken(); } if (mod != null && fun != null) { return new NamedErlangFunction(mod, fun); } else { return null; } } throw ctxt.mappingException(NamedErlangFunction.class); }
From source file:com.tage.calcite.adapter.druid.DruidConnectionImpl.java
private void parseFields(List<String> fieldNames, List<Primitive> fieldTypes, Row.RowBuilder rowBuilder, JsonParser parser) throws IOException { while (parser.nextToken() == JsonToken.FIELD_NAME) { parseField(fieldNames, fieldTypes, rowBuilder, parser); }/* w w w . j av a 2 s. c o m*/ }
From source file:org.zapto.samhippiemiddlepoolchecker.Values.java
PoolError update(String address, URL... urls) { //error is returned at the end PoolError error = PoolError.NONE;/* www.ja va 2s .c om*/ //Aborting the http to save data throws an error. This says if we should cover it up. boolean actualNetworkError = true; //reset the values. If they are never changed, then 0 is the most accurate number accepted = 0; rejected = 0; immature = 0; unexchanged = 0; balance = 0; paid = 0; try { //streaming the json HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(urls[0].toString()); HttpResponse response = client.execute(request); InputStream in = response.getEntity().getContent(); JsonFactory factory = new JsonFactory(); JsonParser parser = factory.createParser(in); boolean addressFound = false;//see if we need to return and address not found error mainParse: //label for breaking when address is found while (parser.nextToken() != JsonToken.END_OBJECT)//finding "report" { if ("report".equals(parser.getCurrentName()))//beginning of report { boolean firstRun = true; while (parser.nextToken() == JsonToken.START_ARRAY)//each address has its own array { if (firstRun)//this jumps over some junk at the begining { parser.nextToken(); firstRun = false; } parser.nextToken();//have to skip some junk each time if (address.equals(parser.getText()))//we have found our address { addressFound = true;//this prevents an address not found error from being returned while (parser.nextToken() != JsonToken.END_ARRAY) { //getting each of our values from the array. //having -420 as a default lets us see if the value is there while not using up 0 if ("megahashesPerSecond".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { accepted = value; } } if ("rejectedMegahashesPerSecond".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { rejected = value; } } if ("immatureBalance".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { immature = value; } } if ("unexchangedBalance".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { unexchanged = value; } } if ("bitcoinBalance".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { balance = value; } } if ("paidOut".equals(parser.getCurrentName())) { float value = (float) parser.getValueAsDouble(-420); if (value > 0)//negative means wrong value { paid = value; } } } break mainParse;//no need to download any more addresses } else { while (parser.nextToken() != JsonToken.END_ARRAY) { } //skipping over an unwanted address } } } } if (!addressFound)//we never found an address { error = PoolError.ADDRESS; } actualNetworkError = false; request.abort();//should stop any extra data usage, also forces ioexception (which is ignored) parser.close(); in.close(); } catch (MalformedURLException e) { if (actualNetworkError) { error = PoolError.NETWORK; } } catch (IOException e) { if (actualNetworkError) { error = PoolError.NETWORK; } } return error; }