List of usage examples for com.fasterxml.jackson.core JsonToken FIELD_NAME
JsonToken FIELD_NAME
To view the source code for com.fasterxml.jackson.core JsonToken FIELD_NAME.
Click Source Link
From source file:com.netflix.hollow.jsonadapter.discover.HollowJsonAdapterSchemaDiscoverer.java
private void discoverSchemaField(JsonParser parser, JsonToken token, String fieldName, HollowDiscoveredSchema schema) throws IOException { if (token != JsonToken.FIELD_NAME) { switch (token) { case START_ARRAY: String listName = schemaNamer.subCollectionName(schema.schemaName, "ArrayOf", fieldName); String elementName = schemaNamer.subObjectName(schema.schemaName, "", fieldName); if (isDebug) System.out.println(String.format( "\t ARR[START] token=%s schemaName=%s fieldName=%s listName=%s elementName=%s", token, schema.schemaName, fieldName, listName, elementName)); discoveredSchema(listName, DiscoveredSchemaType.LIST, elementName); schema.addField(fieldName, FieldType.REFERENCE, listName); HollowDiscoveredSchema elementSchema = discoveredSchema(elementName, DiscoveredSchemaType.OBJECT, null);/*from w w w . j a v a 2 s.c o m*/ discoverSubArraySchemas(parser, elementSchema); if (isDebug) System.out.println(String.format( "\t ARR[END] token=%s schemaName=%s fieldName=%s listName=%s elementName=%s elementSchema=%s", token, schema.schemaName, fieldName, listName, elementName, elementSchema)); break; case START_OBJECT: String subObjectName = schemaNamer.subObjectName(schema.schemaName, "", fieldName); //if (isDebug) System.out.println("\t\t [MAP CHECK] subObjectName=" + subObjectName + "\t" + mapTypes.contains(subObjectName) + "\t" + mapTypes); if (mapTypes.contains(subObjectName)) { String subMapName = schemaNamer.subCollectionName(schema.schemaName, "MapOf", fieldName); if (isDebug) System.out.println(String.format( "\t MAP[START] token=%s schemaName=%s fieldName=%s subMapName=%s subObjectName=%s", token, schema.schemaName, fieldName, subMapName, subObjectName)); discoveredSchema(subMapName, DiscoveredSchemaType.MAP, subObjectName); schema.addField(fieldName, FieldType.REFERENCE, subMapName); HollowDiscoveredSchema valueSchema = discoveredSchema(subObjectName, DiscoveredSchemaType.OBJECT, null); discoverSubMapSchemas(parser, valueSchema); if (isDebug) System.out.println(String.format( "\t MAP[END] token=%s schemaName=%s fieldName=%s subMapName=%s subObjectName=%s valueSchema=%s", token, schema.schemaName, fieldName, subMapName, subObjectName, valueSchema)); } else { if (isDebug) System.out.println( String.format("\t OBJ[START] token=%s schemaName=%s fieldName=%s subObjectName=%s", token, schema.schemaName, fieldName, subObjectName)); HollowDiscoveredSchema subObjectSchema = discoveredSchema(subObjectName, DiscoveredSchemaType.OBJECT, null); if (fieldName != null) schema.addField(fieldName, FieldType.REFERENCE, subObjectName); discoverSchemas(parser, subObjectSchema); if (isDebug) System.out.println(String.format( "\t OBJ[END] token=%s schemaName=%s fieldName=%s subObjectName=%s subObjectSchema=%s", token, schema.schemaName, fieldName, subObjectName, subObjectSchema)); } break; case VALUE_NUMBER_INT: if (isDebug) System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token, schema.schemaName, fieldName, parser.getLongValue())); schema.addField(fieldName, FieldType.LONG); break; case VALUE_NUMBER_FLOAT: if (isDebug) System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token, schema.schemaName, fieldName, parser.getDoubleValue())); schema.addField(fieldName, FieldType.DOUBLE); break; case VALUE_NULL: if (isDebug) System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s", token, schema.schemaName, fieldName)); break; case VALUE_STRING: if (isDebug) System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token, schema.schemaName, fieldName, parser.getValueAsString())); schema.addField(fieldName, FieldType.STRING); break; case VALUE_FALSE: case VALUE_TRUE: if (isDebug) System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token, schema.schemaName, fieldName, parser.getBooleanValue())); schema.addField(fieldName, FieldType.BOOLEAN); break; default: } } }
From source file:com.cedarsoft.serialization.jackson.JacksonParserWrapper.java
/** * Verifies that the next field starts.//from w ww . ja v a 2 s . c om * When the content of the field shall be accessed, it is necessary to call parser.nextToken() afterwards. * * @param fieldName the field name * @throws IOException if there is an io problem */ public void nextField(@Nonnull String fieldName) throws IOException { nextToken(JsonToken.FIELD_NAME); String currentName = parser.getCurrentName(); if (!fieldName.equals(currentName)) { throw new JsonParseException( "Invalid field. Expected <" + fieldName + "> but was <" + currentName + ">", parser.getCurrentLocation()); } }
From source file:com.cinnober.msgcodec.json.TypeScannerJsonParser.java
private String findTypeInDelegate() throws IOException { boolean next = false; for (;;) {// ww w .ja v a2s .c om JsonToken token = next ? p.nextToken() : p.getCurrentToken(); next = true; switch (token) { case FIELD_NAME: if (p.getText().equals(TYPE_FIELD)) { if (p.nextToken() != JsonToken.VALUE_STRING) { throw new DecodeException("Expected string value for field '" + TYPE_FIELD + "'"); } return p.getText(); } else { tokens.add(new ValueToken(JsonToken.FIELD_NAME, p.getText())); p.nextToken(); // consume field parseValue(); } break; case END_OBJECT: throw new DecodeException("Reached end of object. Field '" + TYPE_FIELD + "' not found"); default: throw new DecodeException("Unexpected JSON token " + token); } } }
From source file:org.neo4j.ogm.drivers.http.response.AbstractHttpResponse.java
public T nextDataRecord(String key) { JsonToken token;//from www .j a v a 2 s .co m try { while ((token = bufferParser.nextToken()) != null) { if (JsonToken.FIELD_NAME.equals(token)) { if (key.equals(bufferParser.getCurrentName())) { return mapper.readValue(bufferParser, resultClass); } } } } catch (IOException e) { throw new ResultProcessingException("Error processing results", e); } return null; }
From source file:com.cedarsoft.serialization.serializers.jackson.FileTypeSerializer.java
@Nonnull @Override/*from w ww .j a v a 2s. c o m*/ public FileType deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion) throws VersionException, IOException, JsonProcessingException { JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom); parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName2 = parserWrapper.getCurrentName(); if (!PROPERTY_ID.equals(currentName2)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_ID + "> but was <" + currentName2 + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); String id = parserWrapper.getText(); parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName1 = parserWrapper.getCurrentName(); if (!PROPERTY_DEPENDENT_TYPE.equals(currentName1)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_DEPENDENT_TYPE + "> but was <" + currentName1 + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); boolean dependentType = parserWrapper.getBooleanValue(); parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName = parserWrapper.getCurrentName(); if (!PROPERTY_CONTENT_TYPE.equals(currentName)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_CONTENT_TYPE + "> but was <" + currentName + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); String contentType = parserWrapper.getText(); List<? extends Extension> extensions = deserializeArray(Extension.class, PROPERTY_EXTENSIONS, deserializeFrom, formatVersion); parserWrapper.nextToken(JsonToken.END_OBJECT); return new FileType(id, contentType, dependentType, extensions); }
From source file:com.basistech.rosette.dm.jackson.ListAttributeDeserializer.java
@SuppressWarnings("unchecked") private ListAttribute deserialize(JsonParser jp, DeserializationContext ctxt, TokenBuffer tb) throws IOException { jp.nextToken();//from www. j a v a 2s . c o m String keyName = jp.getText(); if (tb != null) { // need to put back skipped properties? jp = JsonParserSequence.createFlattened(tb.asParser(jp), jp); } // Must point to the next value; tb had no current, jp pointed to VALUE_STRING: KnownAttribute attribute = KnownAttribute.getAttributeForKey(keyName); if (attribute == null) { attribute = KnownAttribute.UNKNOWN; } Class<? extends BaseAttribute> itemClass = attribute.attributeClass(); ListAttribute.Builder<BaseAttribute> builder = new ListAttribute.Builder<>(attribute.attributeClass()); List<BaseAttribute> items = Lists.newArrayList(); JsonToken nextToken; while ((nextToken = jp.nextToken()) != JsonToken.END_OBJECT) { if (nextToken != JsonToken.FIELD_NAME) { throw ctxt.wrongTokenException(jp, JsonToken.END_OBJECT, "Expected field name."); } else { String name = jp.getCurrentName(); if ("items".equals(name)) { // the actual list items. nextToken = jp.nextToken(); if (nextToken == JsonToken.VALUE_EMBEDDED_OBJECT) { Object o = jp.getEmbeddedObject(); if (o instanceof List) { // could it be an array, also?!? // when using JsonTree, sometimes Jackson just sticks the entire Java object in here. items.addAll((List) o); } else { throw ctxt.mappingException( "List contains VALUE_EMBEDDED_OBJECT for items, but it wasn't a list."); } } else if (nextToken != JsonToken.START_ARRAY) { // what about nothing? throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "Expected array of items"); } else { // the START_ARRAY case, which is _normal_. Read the elements. while (jp.nextToken() != JsonToken.END_ARRAY) { items.add(jp.readValueAs(itemClass)); } } } else { nextToken = jp.nextToken(); Object value; if (nextToken == JsonToken.VALUE_EMBEDDED_OBJECT) { value = jp.getEmbeddedObject(); } else { value = jp.readValueAs(Object.class); } builder.extendedProperty(name, value); } } } builder.setItems(items); return builder.build(); }
From source file:com.cedarsoft.serialization.serializers.jackson.LicenseSerializer.java
@Nonnull @Override/*from w ww .j a v a 2 s. c o m*/ public License deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion) throws VersionException, IOException, JsonProcessingException { //If there is a subtype it *must* be cc JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom); parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); if (deserializeFrom.getCurrentName().equals(PROPERTY_SUB_TYPE)) { parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.VALUE_STRING); String subType = deserializeFrom.getText(); if (!subType.equals(SUB_TYPE_CC)) { throw new IllegalStateException("Invalid sub type: " + subType); } parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName = parserWrapper.getCurrentName(); if (!PROPERTY_ID.equals(currentName)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_ID + "> but was <" + currentName + ">", parserWrapper.getCurrentLocation()); } } //id assert deserializeFrom.getCurrentName().equals(PROPERTY_ID); parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.VALUE_STRING); String id = deserializeFrom.getText(); //name parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName1 = parserWrapper.getCurrentName(); if (!PROPERTY_NAME.equals(currentName1)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_NAME + "> but was <" + currentName1 + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); String name = deserializeFrom.getText(); //url parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName = parserWrapper.getCurrentName(); if (!PROPERTY_URL.equals(currentName)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_URL + "> but was <" + currentName + ">", parserWrapper.getCurrentLocation()); } JsonToken token = deserializeFrom.nextToken(); @Nullable URL url; if (token == JsonToken.VALUE_NULL) { url = null; } else { url = new URL(deserializeFrom.getText()); } //Finally closing element parserWrapper.nextToken(JsonToken.END_OBJECT); //Constructing the deserialized object try { return License.get(id); } catch (IllegalArgumentException ignore) { return new License(id, name, url); } }
From source file:com.nesscomputing.httpclient.response.StreamedJsonContentConverter.java
@Override public Void convert(final HttpClientResponse response, final InputStream inputStream) throws IOException { switch (response.getStatusCode()) { case 201://from ww w.jav a2 s. c o m case 204: LOG.debug("Return code is %d, finishing.", response.getStatusCode()); return null; case 200: try (final JsonParser jp = mapper.getFactory().createJsonParser(inputStream)) { expect(jp, jp.nextToken(), JsonToken.START_OBJECT); expect(jp, jp.nextToken(), JsonToken.FIELD_NAME); if (!"results".equals(jp.getCurrentName())) { throw new JsonParseException("expecting results field", jp.getCurrentLocation()); } expect(jp, jp.nextToken(), JsonToken.START_ARRAY); // As noted in a well-hidden comment in the MappingIterator constructor, // readValuesAs requires the parser to be positioned after the START_ARRAY // token with an empty current token jp.clearCurrentToken(); Iterator<T> iter = jp.readValuesAs(typeRef); while (iter.hasNext()) { try { callback.call(iter.next()); } catch (CallbackRefusedException e) { LOG.debug(e, "callback refused execution, finishing."); return null; } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new IOException("Callback interrupted", e); } catch (Exception e) { Throwables.propagateIfPossible(e, IOException.class); throw new IOException("Callback failure", e); } } if (jp.nextValue() != JsonToken.VALUE_TRUE || !jp.getCurrentName().equals("success")) { throw new IOException( "Streamed receive did not terminate normally; inspect server logs for cause."); } return null; } default: throw throwHttpResponseException(response); } }
From source file:org.hbz.oerworldmap.JsonDecoder.java
@Override public void process(final Reader reader) { STARTED = false;//from www.j a v a 2 s . c om JsonDecoder.LOG.debug("############################ New"); // necessary if it is JSONP String text; try { text = CharStreams.toString(reader); this.jsonParser = new JsonFactory().createParser(text); // find start JsonToken currentToken = null; try { currentToken = this.jsonParser.nextToken(); } catch (final JsonParseException e) { // assuming JSONP : final String callbackString = text.substring(0, text.indexOf(JsonDecoder.JSON_START_CHAR) - 1); text = text.substring(text.indexOf(JsonDecoder.JSON_START_CHAR), text.length() - 1); this.jsonParser = new JsonFactory().createParser(text); JsonDecoder.LOG.debug("key=" + JsonDecoder.JSON_CALLBACK + " value=" + callbackString); getReceiver().startRecord(""); STARTED = true; JSONP = true; getReceiver().literal(JsonDecoder.JSON_CALLBACK, callbackString); JsonDecoder.LOG.debug("Text=" + text); currentToken = this.jsonParser.nextToken(); } while (JsonToken.START_OBJECT != currentToken) { this.jsonParser.nextToken(); } String key = null; while (currentToken != null) { if (JsonToken.START_OBJECT == currentToken) { if (!STARTED) { getReceiver().startRecord(""); STARTED = true; } currentToken = this.jsonParser.nextToken(); while (currentToken != null) { if (JsonToken.FIELD_NAME == currentToken) { key = this.jsonParser.getCurrentName(); } if (JsonToken.START_ARRAY == currentToken) { if (this.JSONP) { currentToken = this.jsonParser.nextToken(); currentToken = this.jsonParser.nextToken(); } else { currentToken = this.jsonParser.nextToken(); // treat objects in arrays as new objects if (JsonToken.START_OBJECT == currentToken) { break; } // values of arrays are submitted with an index // so // you can handle // semantics in the morph int i = 0; while (JsonToken.END_ARRAY != currentToken) { final String value = this.jsonParser.getText(); JsonDecoder.LOG.debug("key=" + key + i + " valueArray=" + value); getReceiver().literal(key + i, value); currentToken = this.jsonParser.nextToken(); i++; } } } if (JsonToken.START_OBJECT == currentToken) { if (this.jsonParser.getCurrentName() == null) { break; } } else { handleValue(currentToken, key); } try { currentToken = this.jsonParser.nextToken(); } catch (JsonParseException jpe) { LOG.info( "JsonParseException happens at the end of an non JSON object, e.g. if it is JSONP", jpe.getMessage()); currentToken = null; break; } } } JsonDecoder.LOG.debug("############################ End"); if (STARTED) { getReceiver().endRecord(); STARTED = false; } } } catch (final IOException e) { throw new MetafactureException(e); } }
From source file:com.cedarsoft.serialization.jackson.AbstractDelegatingJacksonSerializer.java
@Nonnull @Override//from w w w. java2s. c om public T deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion) throws IOException, VersionException, JsonProcessingException { assert isVersionReadable(formatVersion); JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom); parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName = parserWrapper.getCurrentName(); if (!PROPERTY_SUB_TYPE.equals(currentName)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_SUB_TYPE + "> but was <" + currentName + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); String type = deserializeFrom.getText(); if (type == null) { throw new JsonParseException("Attribute" + PROPERTY_SUB_TYPE + " not found. Cannot find strategy.", deserializeFrom.getCurrentLocation()); } SerializingStrategy<? extends T, JsonGenerator, JsonParser, JsonProcessingException, OutputStream, InputStream> strategy = serializingStrategySupport .findStrategy(type); Version resolvedVersion = serializingStrategySupport.resolveVersion(strategy, formatVersion); return strategy.deserialize(deserializeFrom, resolvedVersion); }