List of usage examples for com.fasterxml.jackson.core JsonToken VALUE_STRING
JsonToken VALUE_STRING
To view the source code for com.fasterxml.jackson.core JsonToken VALUE_STRING.
Click Source Link
From source file:cz.cvut.kbss.jsonld.jackson.deserialization.JacksonJsonLdDeserializer.java
private Object parseJsonObject(JsonParser parser) throws IOException { Object value = null;/*from w w w. j av a 2 s. c o m*/ final JsonToken initialToken = parser.getCurrentToken(); parser.setCodec(mapper); if (initialToken == JsonToken.START_ARRAY) { value = parser.readValueAs(new TypeReference<List<?>>() { }); } else if (initialToken == JsonToken.START_OBJECT) { value = parser.readValueAs(new TypeReference<Map<?, ?>>() { }); } else if (initialToken == JsonToken.VALUE_STRING) { value = parser.readValueAs(String.class); } else if (initialToken == JsonToken.VALUE_FALSE || initialToken == JsonToken.VALUE_TRUE) { value = parser.readValueAs(Boolean.class); } else if (initialToken == JsonToken.VALUE_NUMBER_FLOAT || initialToken == JsonToken.VALUE_NUMBER_INT) { value = parser.readValueAs(Number.class); } else if (initialToken == JsonToken.VALUE_NULL) { value = null; } return value; }
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"); }/*from w ww . j a v a 2 s. c o 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"); }//from ww w. j av a 2s .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); 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(); }
From source file:com.pursuer.reader.easyrss.data.parser.ItemJSONParser.java
public void parse() throws JsonParseException, IOException { Item item = new Item(); int level = 0; boolean found = false; while (parser.nextToken() != null) { final String name = parser.getCurrentName(); switch (parser.getCurrentToken()) { case START_OBJECT: case START_ARRAY: level++;//from w ww. j a v a 2 s . c om break; case END_OBJECT: case END_ARRAY: level--; break; case VALUE_STRING: if (level == 1 && "continuation".equals(name)) { if (listener != null) { listener.onListContinuationRetrieved(parser.getText()); } } else if (level == 3) { if ("id".equals(name)) { final String text = parser.getText(); item.setUid(text.substring(text.lastIndexOf('/') + 1)); } else if ("title".equals(name)) { item.setTitle(Html.fromHtml(parser.getText()).toString()); } else if ("timestampUsec".equals(name)) { item.setTimestamp(Long.valueOf(parser.getText())); } else if ("author".equals(name)) { item.setAuthor(Html.fromHtml(parser.getText()).toString()); } } else if (level == 4) { if ("content".equals(name)) { item.setContent(parser.getText()); } else if ("streamId".equals(name)) { item.setSourceUri(parser.getText()); } else if ("title".equals(name)) { item.setSourceTitle(Html.fromHtml(parser.getText()).toString()); } } else if (level == 5 && "href".equals(name)) { item.setHref(parser.getText()); } break; case FIELD_NAME: if (level == 1 && "items".equals(name)) { found = true; } else if (level == 3 && "categories".equals(name)) { parser.nextToken(); if (parser.getCurrentToken() == JsonToken.START_ARRAY) { while (parser.nextToken() != JsonToken.END_ARRAY) { if (parser.getCurrentToken() == JsonToken.VALUE_STRING) { final String category = parser.getText(); if (DataUtils.isReadUid(category)) { item.getState().setRead(true); } else if (DataUtils.isStarredUid(category)) { item.getState().setStarred(true); } else if (DataUtils.isTagUid(category)) { item.addTag(category); } } } } } else if (level == 3 && "enclosure".equals(name)) { parser.nextToken(); if (parser.getCurrentToken() == JsonToken.START_ARRAY) { while (parser.nextToken() != JsonToken.END_ARRAY) { } } } default: break; } if (level == 2) { if (item.getUid() != null && listener != null) { listener.onItemRetrieved(item); } item = new Item(); } } parser.close(); if (!found) { throw new IllegalStateException("Invalid JSON input"); } }
From source file:com.cedarsoft.serialization.serializers.jackson.LicenseSerializer.java
@Nonnull @Override//from www. j av a 2s . 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.cedarsoft.serialization.jackson.test.UserDetailsSerializer.java
@Nonnull @Override/* ww w. j a v a2 s .co 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.test.performance.JacksonTest.java
@Test public void testParse() throws Exception { JsonParser parser = jsonFactory.createJsonParser(JSON); assertEquals(JsonToken.START_OBJECT, parser.nextToken()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("id", parser.getCurrentName()); assertEquals(JsonToken.VALUE_STRING, parser.nextToken()); assertEquals("Canon Raw", parser.getText()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("dependent", parser.getCurrentName()); assertEquals(JsonToken.VALUE_FALSE, parser.nextToken()); assertFalse(parser.getBooleanValue()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("extension", parser.getCurrentName()); assertEquals(JsonToken.START_OBJECT, parser.nextToken()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("extension", parser.getCurrentName()); assertEquals(JsonToken.VALUE_STRING, parser.nextToken()); assertEquals("cr2", parser.getText()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("default", parser.getCurrentName()); assertEquals(JsonToken.VALUE_TRUE, parser.nextToken()); assertTrue(parser.getBooleanValue()); assertEquals(JsonToken.FIELD_NAME, parser.nextToken()); assertEquals("delimiter", parser.getCurrentName()); assertEquals(JsonToken.VALUE_STRING, parser.nextToken()); assertEquals(".", parser.getText()); assertEquals(JsonToken.END_OBJECT, parser.nextToken()); assertEquals(JsonToken.END_OBJECT, parser.nextToken()); assertNull(parser.nextToken());// ww w . ja v a2 s . com }
From source file:com.turn.shapeshifter.AutoSerializerTest.java
@Test public void testSerializeWithRepeatedPrimitive() throws Exception { Actor actor = Actor.newBuilder().setName("James Dean").addQuotes("Foo").build(); JsonNode result = new AutoSerializer(Actor.getDescriptor()).serialize(actor, ReadableSchemaRegistry.EMPTY); Assert.assertTrue(result.isObject()); Assert.assertEquals(JsonToken.VALUE_STRING, result.get("name").asToken()); Assert.assertEquals("James Dean", result.get("name").asText()); JsonNode array = result.get("quotes"); Assert.assertTrue(array.isArray());/* ww w. j ava 2s.c om*/ Assert.assertEquals(1, array.size()); JsonNode quoteNode = array.get(0); Assert.assertEquals(JsonToken.VALUE_STRING, quoteNode.asToken()); Assert.assertEquals("Foo", quoteNode.asText()); }
From source file:com.turn.shapeshifter.NamedSchemaSerializerTest.java
@Test public void testSerializeWithSubObject() throws Exception { NamedSchema schema = NamedSchema.of(Union.getDescriptor(), "Union").addConstant("kind", "Union") .useSchema("union_value", "Union"); SchemaRegistry registry = new SchemaRegistry(); registry.register(schema);//from w ww. ja v a 2 s . c o m Union subUnion = Union.newBuilder().setInt32Value(42).build(); Union union = Union.newBuilder().setEnumValue(SomeEnum.SECOND).setUnionValue(subUnion).build(); JsonNode result = new NamedSchemaSerializer(schema).serialize(union, registry); Assert.assertTrue(result.isObject()); Assert.assertEquals(JsonToken.VALUE_STRING, result.get("kind").asToken()); Assert.assertEquals("Union", result.get("kind").asText()); Assert.assertEquals(JsonToken.VALUE_STRING, result.get("enumValue").asToken()); Assert.assertEquals("second", result.get("enumValue").asText()); JsonNode subUnionJson = result.get("unionValue"); Assert.assertTrue(subUnionJson.isObject()); Assert.assertEquals(JsonToken.VALUE_NUMBER_INT, subUnionJson.get("int32Value").asToken()); Assert.assertEquals(42, subUnionJson.get("int32Value").asInt()); Assert.assertEquals(JsonToken.VALUE_STRING, subUnionJson.get("kind").asToken()); Assert.assertEquals("Union", subUnionJson.get("kind").asText()); }
From source file:org.apache.lucene.server.handlers.BulkUpdateDocumentsHandler.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"); }/*from ww w . java2 s .c om*/ 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"); } if (parser.nextToken() != JsonToken.START_ARRAY) { throw new IllegalArgumentException("documents should be a list"); } ShardState shardState = indexState.getShard(0); 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; Term updateTerm = null; JsonToken token = parser.nextToken(); if (token == JsonToken.END_ARRAY) { break; } if (token != JsonToken.START_OBJECT) { throw new IllegalArgumentException("expected object"); } // Parse term + 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("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("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, updateTerm, 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(); }