List of usage examples for com.fasterxml.jackson.core JsonParser getCurrentToken
public abstract JsonToken getCurrentToken();
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();// www. j a v a 2 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:org.mongojack.internal.DBRefDeserializer.java
@Override public DBRef deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { // First of all, make sure that we can get a copy of the DBCollection if (jp instanceof JacksonDBCollectionProvider) { K id = null;/*from w w w . j a va2 s. com*/ String collectionName = null; JsonToken token = jp.getCurrentToken(); if (token == JsonToken.VALUE_NULL) { return null; } if (token == JsonToken.VALUE_EMBEDDED_OBJECT) { // Someones already kindly decoded it for us Object object = jp.getEmbeddedObject(); if (object instanceof com.mongodb.DBRef) { if (keyDeserializer != null) { id = keyDeserializer.deserialize(jp, ctxt); } else { id = (K) ((com.mongodb.DBRef) object).getId(); } collectionName = ((com.mongodb.DBRef) object).getRef(); } else { throw ctxt.instantiationException(DBRef.class, "Don't know what to do with embedded object: " + object); } } else if (token == JsonToken.START_OBJECT) { token = jp.nextValue(); while (token != JsonToken.END_OBJECT) { if (jp.getCurrentName().equals("$id")) { if (keyDeserializer != null) { id = keyDeserializer.deserialize(jp, ctxt); } else { id = (K) jp.getEmbeddedObject(); } } else if (jp.getCurrentName().equals("$ref")) { collectionName = jp.getText(); } else { // Ignore the rest } token = jp.nextValue(); } } if (id == null) { return null; } if (collectionName == null) { throw ctxt.instantiationException(DBRef.class, "DBRef contains no collection name"); } JacksonDBCollection coll = ((JacksonDBCollectionProvider) jp).getDBCollection(); JacksonDBCollection<T, K> refColl = coll.getReferenceCollection(collectionName, type, keyType); return new FetchableDBRef<T, K>(id, refColl); } else { throw ctxt.instantiationException(DBRef.class, "DBRef can only be deserialised by this deserializer if parser implements " + JacksonDBCollectionProvider.class.getName() + " parser is actually " + jp.getClass().getName()); } }
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 w w w . ja va 2 s .co m*/ 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.fluentd.jvmwatcher.JvmWatcher.java
/** * @param parser/*from www .j av a 2 s . co m*/ * @throws JsonParseException * @throws IOException */ private void loadTarget(JsonParser parser) throws JsonParseException, IOException { if (parser.nextToken() == JsonToken.START_ARRAY) { while (parser.nextToken() != JsonToken.END_ARRAY) { if (parser.getCurrentToken() == JsonToken.START_OBJECT) { String shortName = null; String pattern = null; while (parser.nextToken() != JsonToken.END_OBJECT) { if ((parser.getCurrentToken() == JsonToken.FIELD_NAME) && (parser.getText().compareTo("shortname") == 0)) { if (parser.nextToken() == JsonToken.VALUE_STRING) { shortName = parser.getText(); } } if ((parser.getCurrentToken() == JsonToken.FIELD_NAME) && (parser.getText().compareTo("pattern") == 0)) { if (parser.nextToken() == JsonToken.VALUE_STRING) { pattern = parser.getText(); } } } // add target pattern Pattern regexPattern = Pattern.compile(pattern); LocalJvmInfo.addTargetProcessPattern(shortName, regexPattern); } } } }
From source file:com.sdl.odata.renderer.json.writer.JsonPropertyWriterTest.java
private Map<String, Object> getMapFromJson(String json) throws IOException { Map<String, Object> map = new HashMap<>(); JsonParser jsonParser = new JsonFactory().createParser(json); jsonParser.nextToken();/*from w ww . ja v a 2 s.c o m*/ while (jsonParser.nextToken() != null) { String key = jsonParser.getText(); jsonParser.nextToken(); if (jsonParser.getCurrentToken() == JsonToken.START_ARRAY) { map.put(key, getJsonArray(jsonParser)); } else { map.put(key, jsonParser.getText()); } } return map; }
From source file:com.sdl.odata.unmarshaller.json.core.JsonProcessor.java
/** * Parse the complex values.//from w w w. j a v a2s . c o m * * @param jsonParser the parser * @return list of parsed result objects * @throws IOException If unable to read input parser */ private List<Object> getCollectionValue(JsonParser jsonParser) throws IOException { LOG.info("Start parsing {} array", jsonParser.getCurrentName()); List<Object> list = new ArrayList<>(); while (jsonParser.nextToken() != JsonToken.END_ARRAY) { if (jsonParser.getCurrentToken() == JsonToken.START_OBJECT) { Object embedded = getEmbeddedObject(jsonParser); list.add(embedded); } if (!"}".equals(jsonParser.getText())) { list.add(jsonParser.getText()); } else { LOG.info("Array is over."); } } return list; }
From source file:com.msopentech.odatajclient.engine.metadata.edm.ComplexTypeDeserializer.java
@Override protected AbstractComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final AbstractComplexType complexType = ODataVersion.V3 == client.getWorkingVersion() ? new com.msopentech.odatajclient.engine.metadata.edm.v3.ComplexType() : new com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { complexType.setName(jp.nextTextValue()); } else if ("Abstract".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("BaseType".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .setBaseType(jp.nextTextValue()); } else if ("OpenType".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .setOpenType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("Property".equals(jp.getCurrentName())) { jp.nextToken();/*w w w. j av a 2s .com*/ if (complexType instanceof com.msopentech.odatajclient.engine.metadata.edm.v3.ComplexType) { ((com.msopentech.odatajclient.engine.metadata.edm.v3.ComplexType) complexType) .getProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v3.Property.class)); } else { ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .getProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v4.Property.class)); } } else if ("NavigationProperty".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .getNavigationProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.metadata.edm.v4.NavigationProperty.class)); } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType) .setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return complexType; }
From source file:org.gvnix.web.json.DataBinderDeserializer.java
/** * Deserializes JSON object into Map<String, String> format to use it in a * Spring {@link DataBinder}./* w w w . j a v a 2 s. co m*/ * <p/> * Iterate over every object's property and delegates on * {@link #readField(JsonParser, DeserializationContext, JsonToken, String)} * * @param parser JSON parser * @param ctxt context * @param prefix object DataBinder path * @return property values * @throws IOException * @throws JsonProcessingException */ public Map<String, String> readObject(JsonParser parser, DeserializationContext ctxt, String prefix) throws IOException, JsonProcessingException { JsonToken t = parser.getCurrentToken(); if (t == JsonToken.START_OBJECT) { t = parser.nextToken(); // Skip it to locate on first object data token } // Deserialize object properties Map<String, String> deserObj = new HashMap<String, String>(); for (; t != JsonToken.END_OBJECT; t = parser.nextToken()) { Map<String, String> field = readField(parser, ctxt, t, prefix); deserObj.putAll(field); } return deserObj; }
From source file:org.gvnix.web.json.DataBinderDeserializer.java
/** * Deserializes JSON array into Map<String, String> format to use it in a * Spring {@link DataBinder}./*from w w w . ja v a2 s . co m*/ * <p/> * Iterate over every array's item to generate a prefix for property names * on DataBinder style ( * <em>{prefix}[{index}].<em>) and delegates on {@link #readField(JsonParser, DeserializationContext, JsonToken, String)} * * @param parser JSON parser * @param ctxt context * @param prefix array dataBinder path * @return * @throws IOException * @throws JsonProcessingException */ protected Map<String, String> readArray(JsonParser parser, DeserializationContext ctxt, String prefix) throws IOException, JsonProcessingException { JsonToken t = parser.getCurrentToken(); if (t == JsonToken.START_ARRAY) { t = parser.nextToken(); // Skip it to locate on first array data token } // Deserialize array properties int i = 0; Map<String, String> deserObj = new HashMap<String, String>(); for (; t != JsonToken.END_ARRAY; t = parser.nextToken()) { // Property name must include prefix this way: // degrees[0].description Map<String, String> field = readField(parser, ctxt, t, prefix.concat("[").concat(Integer.toString(i++)).concat("].")); deserObj.putAll(field); } return deserObj; }
From source file:com.msopentech.odatajclient.engine.data.metadata.edm.ComplexTypeDeserializer.java
@Override protected AbstractComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final AbstractComplexType complexType = ODataVersion.V3 == client.getWorkingVersion() ? new com.msopentech.odatajclient.engine.data.metadata.edm.v3.ComplexType() : new com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { complexType.setName(jp.nextTextValue()); } else if ("Abstract".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("BaseType".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .setBaseType(jp.nextTextValue()); } else if ("OpenType".equals(jp.getCurrentName())) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .setOpenType(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("Property".equals(jp.getCurrentName())) { jp.nextToken();/*from w w w .j a v a 2 s . co m*/ if (complexType instanceof com.msopentech.odatajclient.engine.data.metadata.edm.v3.ComplexType) { ((com.msopentech.odatajclient.engine.data.metadata.edm.v3.ComplexType) complexType) .getProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v3.Property.class)); } else { ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .getProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v4.Property.class)); } } else if ("NavigationProperty".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .getNavigationProperties().add(jp.getCodec().readValue(jp, com.msopentech.odatajclient.engine.data.metadata.edm.v4.NavigationProperty.class)); } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType) .setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return complexType; }