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.cedarsoft.couchdb.io.ActionFailedExceptionSerializer.java
@Nonnull public ActionFailedException deserialize(int status, @Nonnull InputStream in) throws VersionException, IOException { try (MaxLengthByteArrayOutputStream teedOut = new MaxLengthByteArrayOutputStream(); TeeInputStream teeInputStream = new TeeInputStream(in, teedOut)) { JsonFactory jsonFactory = JacksonSupport.getJsonFactory(); JsonParser parser = jsonFactory.createJsonParser(teeInputStream); JacksonParserWrapper parserWrapper = new JacksonParserWrapper(parser); parserWrapper.nextToken(JsonToken.START_OBJECT); String error = null;// ww w.j av a2s. c om String reason = null; while (parser.nextToken() == JsonToken.FIELD_NAME) { String currentName = parser.getCurrentName(); if (currentName.equals(PROPERTY_ERROR)) { parserWrapper.nextToken(JsonToken.VALUE_STRING); error = parser.getText(); continue; } if (currentName.equals(PROPERTY_REASON)) { parserWrapper.nextToken(JsonToken.VALUE_STRING); reason = parser.getText(); continue; } throw new IllegalStateException("Unexpected field reached <" + currentName + ">"); } parserWrapper.verifyDeserialized(error, PROPERTY_ERROR); parserWrapper.verifyDeserialized(reason, PROPERTY_REASON); assert reason != null; assert error != null; parserWrapper.ensureObjectClosed(); return new ActionFailedException(status, error, reason, teedOut.toByteArray()); } }
From source file:net.floodlightcontroller.loadbalancer.MonitorsResource.java
protected LBMonitor jsonToMonitor(String json) throws IOException { MappingJsonFactory f = new MappingJsonFactory(); JsonParser jp;/* ww w .j av a2 s . c om*/ LBMonitor monitor = new LBMonitor(); try { jp = f.createJsonParser(json); } catch (JsonParseException e) { throw new IOException(e); } jp.nextToken(); if (jp.getCurrentToken() != JsonToken.START_OBJECT) { throw new IOException("Expected START_OBJECT"); } while (jp.nextToken() != JsonToken.END_OBJECT) { if (jp.getCurrentToken() != JsonToken.FIELD_NAME) { throw new IOException("Expected FIELD_NAME"); } String n = jp.getCurrentName(); jp.nextToken(); if (jp.getText().equals("")) continue; else if (n.equals("monitor")) { while (jp.nextToken() != JsonToken.END_OBJECT) { String field = jp.getCurrentName(); if (field.equals("id")) { monitor.id = jp.getText(); continue; } if (field.equals("name")) { monitor.name = jp.getText(); continue; } if (field.equals("type")) { monitor.type = Short.parseShort(jp.getText()); continue; } if (field.equals("delay")) { monitor.delay = Short.parseShort(jp.getText()); continue; } if (field.equals("timeout")) { monitor.timeout = Short.parseShort(jp.getText()); continue; } if (field.equals("attempts_before_deactivation")) { monitor.attemptsBeforeDeactivation = Short.parseShort(jp.getText()); continue; } if (field.equals("network_id")) { monitor.netId = jp.getText(); continue; } if (field.equals("address")) { monitor.address = Integer.parseInt(jp.getText()); continue; } if (field.equals("protocol")) { monitor.protocol = Byte.parseByte(jp.getText()); continue; } if (field.equals("port")) { monitor.port = Short.parseShort(jp.getText()); continue; } if (field.equals("admin_state")) { monitor.adminState = Short.parseShort(jp.getText()); continue; } if (field.equals("status")) { monitor.status = Short.parseShort(jp.getText()); continue; } log.warn("Unrecognized field {} in " + "parsing Vips", jp.getText()); } } } jp.close(); return monitor; }
From source file:com.cedarsoft.serialization.serializers.jackson.ApplicationSerializer.java
@Nonnull @Override/*www . j a va 2 s . c om*/ public Application deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion) throws VersionException, IOException, JsonProcessingException { //name JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom); parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName = parserWrapper.getCurrentName(); if (!PROPERTY_NAME.equals(currentName)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_NAME + "> but was <" + currentName + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); String name = parserWrapper.getText(); //version Version version = deserialize(Version.class, PROPERTY_VERSION, formatVersion, deserializeFrom); //Finally closing element parserWrapper.nextToken(JsonToken.END_OBJECT); //Constructing the deserialized object return new Application(name, version); }
From source file:com.cedarsoft.serialization.jackson.test.UserDetailsSerializer.java
@Nonnull @Override/*from w w w . jav a 2 s . c o m*/ public UserDetails deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion) throws IOException, VersionException, JsonProcessingException { long registrationDate = -1; long lastLogin = -1; String passwordHash = null; JacksonParserWrapper parser = new JacksonParserWrapper(deserializeFrom); while (parser.nextToken() == JsonToken.FIELD_NAME) { String currentName = parser.getCurrentName(); if (currentName.equals(PROPERTY_REGISTRATION_DATE)) { parser.nextToken(JsonToken.VALUE_NUMBER_INT); registrationDate = parser.getLongValue(); continue; } if (currentName.equals(PROPERTY_LAST_LOGIN)) { parser.nextToken(JsonToken.VALUE_NUMBER_INT); lastLogin = parser.getLongValue(); continue; } if (currentName.equals(PROPERTY_PASSWORD_HASH)) { parser.nextToken(JsonToken.VALUE_STRING); passwordHash = parser.getText(); continue; } throw new IllegalStateException("Unexpected field reached <" + currentName + ">"); } parser.verifyDeserialized(registrationDate, PROPERTY_REGISTRATION_DATE); parser.verifyDeserialized(lastLogin, PROPERTY_LAST_LOGIN); parser.verifyDeserialized(passwordHash, PROPERTY_PASSWORD_HASH); assert passwordHash != null; parser.ensureObjectClosed(); try { return new UserDetails(registrationDate, lastLogin, Hex.decodeHex(passwordHash.toCharArray())); } catch (DecoderException e) { throw new RuntimeException(e); } }
From source file:com.cedarsoft.serialization.serializers.jackson.VersionRangeSerializer.java
@Nonnull @Override/*from ww w .ja v a2 s .c o m*/ public VersionRange deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion) throws VersionException, IOException, JsonProcessingException { //min JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom); parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName3 = parserWrapper.getCurrentName(); if (!PROPERTY_MIN.equals(currentName3)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_MIN + "> but was <" + currentName3 + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); Version min = Version.parse(deserializeFrom.getText()); //max parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName2 = parserWrapper.getCurrentName(); if (!PROPERTY_MAX.equals(currentName2)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_MAX + "> but was <" + currentName2 + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); Version max = Version.parse(deserializeFrom.getText()); //includeLower parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName1 = parserWrapper.getCurrentName(); if (!PROPERTY_INCLUDELOWER.equals(currentName1)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_INCLUDELOWER + "> but was <" + currentName1 + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); boolean includeLower = deserializeFrom.getBooleanValue(); //includeUpper parserWrapper.nextToken(); parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME); String currentName = parserWrapper.getCurrentName(); if (!PROPERTY_INCLUDEUPPER.equals(currentName)) { throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_INCLUDEUPPER + "> but was <" + currentName + ">", parserWrapper.getCurrentLocation()); } parserWrapper.nextToken(); boolean includeUpper = deserializeFrom.getBooleanValue(); //Finally closing element parserWrapper.nextToken(JsonToken.END_OBJECT); //Constructing the deserialized object return new VersionRange(min, max, includeLower, includeUpper); }
From source file:com.sdl.odata.unmarshaller.json.core.JsonProcessor.java
/** * Process all things that do not contain special ODataTags. * * @param jsonParser the parser/*w w w.ja va 2s. com*/ * @throws ODataUnmarshallingException If unable to unmarshall * @throws IOException If unable to read input parser */ private void process(JsonParser jsonParser) throws IOException, ODataUnmarshallingException { if (jsonParser.getCurrentToken() == JsonToken.FIELD_NAME) { LOG.info("Starting to parse {} token", jsonParser.getCurrentName()); String key = jsonParser.getCurrentName(); jsonParser.nextToken(); JsonToken token = jsonParser.getCurrentToken(); if (token == JsonToken.START_ARRAY) { if (JsonConstants.VALUE.equals(key)) { throw new ODataUnmarshallingException("Feed is not supported"); } values.put(key, getCollectionValue(jsonParser)); } else if (token == JsonToken.START_OBJECT) { values.put(key, getEmbeddedObject(jsonParser)); } else { if (token.equals(JsonToken.VALUE_NULL)) { values.put(key, null); } else { values.put(key, jsonParser.getText()); } } } }
From source file:com.microsoft.azure.storage.table.TableStorageErrorDeserializer.java
/** * Gets the Extended Error information.// w w w .j av a2 s . c o m * * @return the Extended Error information. * * @param reader * the input stream to read error details from. * @param format * The {@link TablePayloadFormat} to use for parsing * @throws IOException * if an error occurs while accessing the stream with Json. * @throws JsonParseException * if an error occurs while parsing the stream. */ public static StorageExtendedErrorInformation getExtendedErrorInformation(final Reader reader, final TablePayloadFormat format) throws JsonParseException, IOException { JsonFactory jsonFactory = new JsonFactory(); JsonParser parser = jsonFactory.createParser(reader); try { final StorageExtendedErrorInformation errorInfo = new StorageExtendedErrorInformation(); if (!parser.hasCurrentToken()) { parser.nextToken(); } JsonUtilities.assertIsStartObjectJsonToken(parser); parser.nextToken(); JsonUtilities.assertIsFieldNameJsonToken(parser); JsonUtilities.assertIsExpectedFieldName(parser, "odata.error"); // start getting extended error information parser.nextToken(); JsonUtilities.assertIsStartObjectJsonToken(parser); // get code parser.nextValue(); JsonUtilities.assertIsExpectedFieldName(parser, TableConstants.ErrorConstants.ERROR_CODE); errorInfo.setErrorCode(parser.getValueAsString()); // get message parser.nextToken(); JsonUtilities.assertIsFieldNameJsonToken(parser); JsonUtilities.assertIsExpectedFieldName(parser, TableConstants.ErrorConstants.ERROR_MESSAGE); parser.nextToken(); JsonUtilities.assertIsStartObjectJsonToken(parser); parser.nextValue(); JsonUtilities.assertIsExpectedFieldName(parser, "lang"); parser.nextValue(); JsonUtilities.assertIsExpectedFieldName(parser, "value"); errorInfo.setErrorMessage(parser.getValueAsString()); parser.nextToken(); JsonUtilities.assertIsEndObjectJsonToken(parser); parser.nextToken(); // get innererror if it exists if (parser.getCurrentToken() == JsonToken.FIELD_NAME) { JsonUtilities.assertIsExpectedFieldName(parser, TableConstants.ErrorConstants.INNER_ERROR); errorInfo.getAdditionalDetails().putAll(parseJsonErrorException(parser)); parser.nextToken(); } // end code object JsonUtilities.assertIsEndObjectJsonToken(parser); // end odata.error object parser.nextToken(); JsonUtilities.assertIsEndObjectJsonToken(parser); return errorInfo; } finally { parser.close(); } }
From source file:com.netflix.hollow.jsonadapter.HollowJsonAdapterPrimaryKeyFinder.java
private void addObjectField(JsonParser parser, JsonToken token, HollowObjectSchema schema, String fieldName, StringBuilder currentFieldPath) throws IOException { if (token != JsonToken.FIELD_NAME) { int fieldPosition = schema.getPosition(fieldName); if (fieldPosition == -1) { skipObjectField(parser, token); } else {//from ww w. java2 s . co m int parentFieldPathLength = currentFieldPath.length(); if (parentFieldPathLength > 0) currentFieldPath.append("."); currentFieldPath.append(fieldName); Integer keyFieldPosition = keyFieldPathPositions.get(currentFieldPath.toString()); switch (token) { case START_ARRAY: skipSubArray(parser); break; case START_OBJECT: String referencedType = schema.getReferencedType(fieldName); HollowSchema referencedSchema = hollowSchemas.get(referencedType); if (referencedSchema.getSchemaType() == SchemaType.OBJECT) addObject(parser, (HollowObjectSchema) referencedSchema, currentFieldPath); else skipObject(parser); break; case VALUE_FALSE: case VALUE_TRUE: case VALUE_NUMBER_INT: case VALUE_NUMBER_FLOAT: case VALUE_STRING: switch (schema.getFieldType(fieldPosition)) { case BOOLEAN: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = Boolean .valueOf(parser.getBooleanValue()); break; case INT: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = Integer.valueOf(parser.getIntValue()); break; case LONG: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = Long.valueOf(parser.getLongValue()); break; case DOUBLE: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = Double.valueOf(parser.getDoubleValue()); break; case FLOAT: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = Float.valueOf(parser.getFloatValue()); break; case STRING: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = parser.getValueAsString(); break; case REFERENCE: if (keyFieldPosition != null) throw new IllegalStateException("Key elements must not be REFERENCE"); HollowObjectSchema subSchema = (HollowObjectSchema) hollowSchemas .get(schema.getReferencedType(fieldPosition)); currentFieldPath.append(".").append(subSchema.getFieldName(0)); keyFieldPosition = keyFieldPathPositions.get(currentFieldPath.toString()); if (keyFieldPosition != null) { switch (subSchema.getFieldType(0)) { case BOOLEAN: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = Boolean .valueOf(parser.getBooleanValue()); break; case INT: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = Integer .valueOf(parser.getIntValue()); break; case LONG: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = Long .valueOf(parser.getLongValue()); break; case DOUBLE: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = Double .valueOf(parser.getDoubleValue()); break; case FLOAT: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = Float .valueOf(parser.getFloatValue()); break; case STRING: if (keyFieldPosition != null) keyElementArray[keyFieldPosition.intValue()] = parser.getValueAsString(); break; case REFERENCE: throw new IllegalStateException("Key elements must not be REFERENCE"); default: } } default: } case VALUE_NULL: break; default: } currentFieldPath.setLength(parentFieldPathLength); } } }
From source file:org.apache.lucene.server.handlers.BulkAddDocumentsHandler.java
@Override public String handleStreamed(Reader reader, Map<String, List<String>> params) throws Exception { JsonFactory jfactory = new JsonFactory(); JsonParser parser = jfactory.createJsonParser(reader); if (parser.nextToken() != JsonToken.START_OBJECT) { throw new IllegalArgumentException("expected JSON object"); }// ww w . j a v a 2 s.co m if (parser.nextToken() != JsonToken.FIELD_NAME) { throw new IllegalArgumentException("expected indexName first"); } if (!parser.getText().equals("indexName")) { throw new IllegalArgumentException("expected indexName first"); } if (parser.nextToken() != JsonToken.VALUE_STRING) { throw new IllegalArgumentException("indexName should be string"); } IndexState indexState = globalState.get(parser.getText()); indexState.verifyStarted(null); if (parser.nextToken() != JsonToken.FIELD_NAME) { throw new IllegalArgumentException("expected documents next"); } if (!parser.getText().equals("documents")) { throw new IllegalArgumentException("expected documents after indexName"); } ShardState shardState = indexState.getShard(0); if (parser.nextToken() != JsonToken.START_ARRAY) { throw new IllegalArgumentException("documents should be a list"); } int count = 0; IndexingContext ctx = new IndexingContext(); AddDocumentHandler addDocHandler = (AddDocumentHandler) globalState.getHandler("addDocument"); // Parse as many doc blocks as there are: while (true) { List<Document> children = null; Document parent = null; JsonToken token = parser.nextToken(); if (token == JsonToken.END_ARRAY) { break; } if (token != JsonToken.START_OBJECT) { throw new IllegalArgumentException("expected object"); } // Parse parent + children for this one doc block: while (true) { token = parser.nextToken(); if (token == JsonToken.END_OBJECT) { // Done with parent + child in this block break; } if (token != JsonToken.FIELD_NAME) { throw new IllegalArgumentException("missing field name: " + token); } String f = parser.getText(); if (f.equals("children")) { token = parser.nextToken(); if (token != JsonToken.START_ARRAY) { throw new IllegalArgumentException("expected array for children"); } children = new ArrayList<Document>(); // Parse each child: while (true) { Document doc = addDocHandler.parseDocument(indexState, parser); if (doc == null) { break; } children.add(doc); } } else if (f.equals("parent")) { parent = addDocHandler.parseDocument(indexState, parser); } else { throw new IllegalArgumentException("unrecognized field name \"" + f + "\""); } } if (parent == null) { throw new IllegalArgumentException("missing parent"); } if (children == null) { throw new IllegalArgumentException("missing children"); } // Parent is last: children.add(parent); globalState.submitIndexingTask(shardState.getAddDocumentsJob(count, null, children, ctx)); count++; } // nocommit this is ... lameish: while (true) { if (ctx.addCount.get() == count) { break; } Thread.sleep(1); } Throwable t = ctx.getError(); if (t != null) { IOUtils.reThrow(t); } JSONObject o = new JSONObject(); o.put("indexGen", shardState.writer.getMaxCompletedSequenceNumber()); o.put("indexedDocumentBlockCount", count); return o.toString(); }
From source file:org.apache.lucene.server.handlers.BulkUpdateDocumentHandler.java
@Override public String handleStreamed(Reader reader, Map<String, List<String>> params) throws Exception { JsonFactory jfactory = new JsonFactory(); JsonParser parser = jfactory.createJsonParser(reader); if (parser.nextToken() != JsonToken.START_OBJECT) { throw new IllegalArgumentException("expected JSON object"); }/* w w w . j av a 2s . com*/ if (parser.nextToken() != JsonToken.FIELD_NAME) { throw new IllegalArgumentException("expected indexName first"); } if (!parser.getText().equals("indexName")) { throw new IllegalArgumentException("expected indexName first"); } if (parser.nextToken() != JsonToken.VALUE_STRING) { throw new IllegalArgumentException("indexName should be string"); } IndexState indexState = globalState.get(parser.getText()); indexState.verifyStarted(null); ShardState shardState = indexState.getShard(0); if (parser.nextToken() != JsonToken.FIELD_NAME) { throw new IllegalArgumentException("expected documents next"); } if (!parser.getText().equals("documents")) { throw new IllegalArgumentException("expected documents after indexName"); } if (parser.nextToken() != JsonToken.START_ARRAY) { throw new IllegalArgumentException("documents should be a list"); } IndexingContext ctx = new IndexingContext(); AddDocumentHandler addDocHandler = (AddDocumentHandler) globalState.getHandler("addDocument"); // Parse any number of documents to update: int count = 0; while (true) { JsonToken token = parser.nextToken(); if (token == JsonToken.END_ARRAY) { break; } if (token != JsonToken.START_OBJECT) { throw new IllegalArgumentException("missing object"); } // Parse term: and fields: Term updateTerm = null; final Document doc = new Document(); while (true) { token = parser.nextToken(); if (token == JsonToken.END_OBJECT) { break; } if (token != JsonToken.FIELD_NAME) { throw new IllegalArgumentException("missing field name"); } String f = parser.getText(); if (f.equals("term")) { if (parser.nextToken() != JsonToken.START_OBJECT) { throw new IllegalArgumentException("missing object"); } // TODO: allow field to be specified only once, then // only text per document String field = null, term = null; while (parser.nextToken() != JsonToken.END_OBJECT) { String f2 = parser.getText(); if (f2.equals("field")) { if (parser.nextToken() != JsonToken.VALUE_STRING) { throw new IllegalArgumentException("missing string value"); } field = parser.getText(); // Ensure field is valid: indexState.getField(field); } else if (f2.equals("term")) { if (parser.nextToken() != JsonToken.VALUE_STRING) { throw new IllegalArgumentException("missing string value"); } term = parser.getText(); } else { throw new IllegalArgumentException("unexpected field " + f); } } updateTerm = new Term(field, term); } else if (f.equals("fields")) { addDocHandler.parseFields(indexState, doc, parser); } else { boolean handled = false; for (AddDocumentHandler.PostHandle postHandle : addDocHandler.postHandlers) { if (postHandle.invoke(indexState, f, parser, doc)) { handled = true; break; } } if (!handled) { throw new IllegalArgumentException("unrecognized field " + parser.getText()); } } } if (updateTerm == null) { throw new IllegalArgumentException("missing term"); } // TODO: this is dup'd code ... share better w/ AddDocHandler globalState.submitIndexingTask(shardState.getAddDocumentJob(count, updateTerm, doc, ctx)); count++; } // nocommit this is ... lameish: while (true) { if (ctx.addCount.get() == count) { break; } Thread.sleep(1); } JSONObject o = new JSONObject(); o.put("indexGen", shardState.writer.getMaxCompletedSequenceNumber()); o.put("indexedDocumentCount", count); return o.toString(); }