com.fasterxml.jackson.databind.ObjectMapper#getTypeFactory ( )源码实例Demo

下面列出了com.fasterxml.jackson.databind.ObjectMapper#getTypeFactory ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Override
public List<String> fromCursor(Cursor cursor, String columnName) {
    int columnIndex = cursor.getColumnIndex(columnName);
    String sourceValue = cursor.getString(columnIndex);

    if (sourceValue == null || sourceValue.equals("")) {
        return Collections.emptyList();
    } else if (sourceValue.charAt(0) == '/') {
        return Arrays.asList(sourceValue.substring(1).split("/"));
    } else {
        ObjectMapper objectMapper  = new ObjectMapper();
        TypeFactory typeFactory = objectMapper.getTypeFactory();
        try {
            return objectMapper.readValue(sourceValue, typeFactory.constructCollectionType(List.class,
                    String.class));
        } catch (IOException e) {
            throw new RuntimeException("Couldn't deserialize string array");
        }
    }
}
 
@Test
public void testDeleteOnFile() throws IOException {
    TestDataProviderEngine engine = new TestDataProviderEngine();
    engine.setResourceLoader(new DefaultResourceLoader());
    engine.setPathOnDisk(testFolder.getRoot() + "/");

    N2oTestDataProvider provider = new N2oTestDataProvider();
    provider.setFile(testFile.getName());

    //Удаление данных
    provider.setOperation(delete);

    Map<String, Object> inParamsForDelete = new LinkedHashMap<>();
    inParamsForDelete.put("id", 1L);

    engine.invoke(provider, inParamsForDelete);

    //Проверка, что после delete, json файл содержит ожидаемые данные
    ObjectMapper objectMapper = new ObjectMapper();
    TypeFactory typeFactory = objectMapper.getTypeFactory();
    CollectionType collectionType = typeFactory.constructCollectionType(
            List.class, HashMap.class);
    List<Map> result = objectMapper.readValue(testFile, collectionType);

    assertThat(result.size(), is(0));
}
 
源代码3 项目: rest-schemagen   文件: WrappedListTest.java
@Test
public void shouldDeserialize() throws Exception {
    final ObjectMapper mapper = new ObjectMapper();
    final TypeFactory typeFactory = mapper.getTypeFactory();

    final String content = "{\"members\": [{\"value\": \"foo\", \"_schema\":{\"links\":[]}}, {\"value\": \"bar\", \"_schema\":{\"links\":[]}}]}";

    final TypeReference typeReference = new TypeReference<WrappedList<ObjectWithSchema<ListResponseTest.Payload>>>() {
    };
    final WrappedList<ObjectWithSchema<ListResponseTest.Payload>> listResponse = mapper.readValue(content, typeReference);

    assertThat(listResponse.members)
            .extracting(ObjectWithSchema::getObject)
            .extracting(p -> p.value)
            .containsExactly("foo", "bar");
}
 
源代码4 项目: rest-schemagen   文件: WithIdTest.java
@Test
public void shouldDeserializeCorrectly() throws Exception {
    final ObjectMapper mapper = new ObjectMapper();
    final TypeFactory typeFactory = mapper.getTypeFactory();

    UUID id = UUID.randomUUID();

    final String content = "{\"text\": \"foo\", \"number\": 123, \"id\": \"" + id.toString() + "\"}";

    final JavaType nameWithSchemaType = typeFactory.constructParametricType(WithId.class, Payload.class);
    final WithId<Payload> payloadWithId = mapper.readValue(content, nameWithSchemaType);

    assertThat(payloadWithId.object.text).isEqualTo("foo");
    assertThat(payloadWithId.object.number).isEqualTo(123);
    assertThat(payloadWithId.id).isEqualTo(id);
}
 
源代码5 项目: proarc   文件: JsonValueMap.java
public static JsonValueMap fromBundle(BundleName bundle, Locale locale) {
    JsonValueMap jvm = new JsonValueMap();
    jvm.setMapId(bundle.getValueMapId());

    URL resource = findResource(bundle.toString(), CONTROL, locale);
    if (resource == null) {
        return jvm;
    }
    ObjectMapper om = JsonUtils.defaultObjectMapper();
    try {
        TypeFactory typeFactory = om.getTypeFactory();
        MapType jsonType = typeFactory.constructMapType(Map.class, String.class, Object.class);
        Map<String, Object> jsonMap = om.readValue(resource, jsonType);
        if (LOG.isLoggable(Level.FINE)) {
            LOG.fine(String.valueOf(jsonMap));
        }
        Object data = jsonMap.get("data");
        jvm.setValues((List<Map<String, Object>>) data);
    } catch (Exception ex) {
        LOG.log(Level.WARNING, "Cannot read resource " + resource, ex);
    }
    return jvm;
}
 
源代码6 项目: data-highway   文件: ObjectMapperFactory.java
public static <T> ObjectMapper create(
    @NonNull Class<T> payloadClass,
    @NonNull PayloadTypeFactory payloadTypeFactory,
    JsonDeserializer<T> payloadDeserialiser) {
  ObjectMapper mapper = new ObjectMapper().disable(FAIL_ON_UNKNOWN_PROPERTIES);
  TypeFactory typeFactory = mapper.getTypeFactory();
  JavaType payloadType = payloadTypeFactory.construct(typeFactory);
  return mapper.registerModule(Event.module(typeFactory, payloadType, payloadClass, payloadDeserialiser));
}
 
源代码7 项目: data-highway   文件: EventTest.java
@Test
public void message() throws Exception {
  ObjectMapper mapper = new ObjectMapper();
  TypeFactory typeFactory = mapper.getTypeFactory();
  mapper.registerModule(Event.module(typeFactory, typeFactory.constructType(Payload.class), Payload.class, null));
  Event event = new Message<>(0, 1L, 2, 3L, new Payload("bar"));
  String json = mapper.writeValueAsString(event);
  assertThat(json,
      is("{\"type\":\"MESSAGE\",\"partition\":0,\"offset\":1,\"schema\":2,\"timestampMs\":3,\"payload\":{\"foo\":\"bar\"}}"));
  Event result = mapper.readValue(json, Event.class);
  assertThat(result, is(event));
}
 
@Test
public void testCreateOnFile() throws IOException {
    TestDataProviderEngine engine = new TestDataProviderEngine();
    engine.setResourceLoader(new DefaultResourceLoader());
    engine.setPathOnDisk(testFolder.getRoot() + "/");

    N2oTestDataProvider provider = new N2oTestDataProvider();
    provider.setFile(testFile.getName());

    //Добавление новых данных
    provider.setOperation(create);

    Map<String, Object> inParamsForCreate = new LinkedHashMap<>();
    inParamsForCreate.put("id", 9L);
    inParamsForCreate.put("name", "test9");
    inParamsForCreate.put("type", "9");

    engine.invoke(provider, inParamsForCreate);

    //Проверка, что после create, json файл содержит ожидаемые данные
    ObjectMapper objectMapper = new ObjectMapper();
    TypeFactory typeFactory = objectMapper.getTypeFactory();
    CollectionType collectionType = typeFactory.constructCollectionType(
            List.class, HashMap.class);
    List<Map> result = objectMapper.readValue(testFile, collectionType);

    assertThat(result.size(), is(2));
    assertThat(result.get(0).get("id"), is(9));
    assertThat(result.get(0).get("name"), is("test9"));
    assertThat(result.get(0).get("type"), is("9"));
    assertThat(result.get(1).get("id"), is(1));
    assertThat(result.get(1).get("name"), is("test1"));
    assertThat(result.get(1).get("type"), is("1"));
}
 
源代码9 项目: database   文件: JsonHelper.java
public static List<RunningQuery> readRunningQueryList(InputStream is)
		throws JsonProcessingException, IOException {

	final ObjectMapper mapper = new ObjectMapper();
	mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
	final TypeFactory typeFactory = mapper.getTypeFactory();
	final ObjectReader reader = mapper.reader(typeFactory
			.constructCollectionType(List.class,
					com.bigdata.rdf.sail.model.RunningQuery.class));

	// TODO: Change this when upgrading to a newer Jackson version
	return (List<RunningQuery>) reader.readValue(is);

}
 
源代码10 项目: n2o-framework   文件: TestDataProviderEngineTest.java
@Test
public void testCreateOnEmptyFile() throws IOException {
    TestDataProviderEngine engine = new TestDataProviderEngine();
    engine.setResourceLoader(new DefaultResourceLoader());
    engine.setPathOnDisk(testFolder.getRoot() + "/");

    N2oTestDataProvider provider = new N2oTestDataProvider();
    provider.setFile(emptyFile.getName());

    //Добавление новых данных в пустой файл
    provider.setOperation(create);

    Map<String, Object> inParamsForCreate = new LinkedHashMap<>();
    inParamsForCreate.put("name", "test10");
    inParamsForCreate.put("type", "10");

    engine.invoke(provider, inParamsForCreate);

    //Проверка, что после create, json файл содержит ожидаемые данные
    ObjectMapper objectMapper = new ObjectMapper();
    TypeFactory typeFactory = objectMapper.getTypeFactory();
    CollectionType collectionType = typeFactory.constructCollectionType(
            List.class, HashMap.class);
    List<Map> result = objectMapper.readValue(emptyFile, collectionType);

    assertThat(result.size(), is(1));
    assertThat(result.get(0).get("id"), is(1));
    assertThat(result.get(0).get("name"), is("test10"));
    assertThat(result.get(0).get("type"), is("10"));
}
 
源代码11 项目: caravan   文件: AbstractTypeCustomizationFactory.java
public AbstractTypeCustomizationFactory(ObjectMapper mapper) {
  this.serializerProvider = mapper.getSerializerProviderInstance();
  this.serializerFactory = (CustomBeanSerializerFactory) mapper.getSerializerFactory();
  this.typeFactory = mapper.getTypeFactory();

  this.deserializationContext = mapper.getDeserializationContext();
  this.deserializationConfig = mapper.getDeserializationConfig();
}
 
源代码12 项目: streams   文件: MoreoverJsonActivitySerializer.java
@Override
public Activity deserialize(String serialized) {
  serialized = serialized.replaceAll("\\[[ ]*\\]", "null");

  LOGGER.debug(serialized);

  ObjectMapper mapper = new ObjectMapper();
  AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(mapper.getTypeFactory());
  mapper.setAnnotationIntrospector(introspector);
  mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.FALSE);
  mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, Boolean.FALSE);
  mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE);
  mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE);
  mapper.configure(DeserializationFeature.WRAP_EXCEPTIONS, Boolean.TRUE);

  Article article;
  try {
    ObjectNode node = (ObjectNode)mapper.readTree(serialized);
    node.remove("tags");
    node.remove("locations");
    node.remove("companies");
    node.remove("topics");
    node.remove("media");
    node.remove("outboundUrls");
    ObjectNode jsonNodes = (ObjectNode) node.get("source").get("feed");
    jsonNodes.remove("editorialTopics");
    jsonNodes.remove("tags");
    jsonNodes.remove("autoTopics");
    article = mapper.convertValue(node, Article.class);
  } catch (IOException ex) {
    throw new IllegalArgumentException("Unable to deserialize", ex);
  }
  return MoreoverUtils.convert(article);
}
 
源代码13 项目: SNOMED-in-5-minutes   文件: Utility.java
/**
 * Returns the graph for json.
 *
 * @param <T> the generic type
 * @param json the json
 * @param graphClass the graph class
 * @return the graph for json
 * @throws Exception the exception
 */
public static <T> T getGraphForJson(String json, Class<T> graphClass)
  throws Exception {
  InputStream in =
      new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_8));
  ObjectMapper mapper = new ObjectMapper();
  AnnotationIntrospector introspector =
      new JaxbAnnotationIntrospector(mapper.getTypeFactory());
  mapper.setAnnotationIntrospector(introspector);
  return mapper.readValue(in, graphClass);

}
 
源代码14 项目: database   文件: JsonHelper.java
public static void writeRunningQueryList(Writer w,
		List<RunningQuery> rQueries) throws JsonGenerationException,
		JsonMappingException, IOException {
	final ObjectMapper mapper = new ObjectMapper();
	final TypeFactory typeFactory = mapper.getTypeFactory();
	final ObjectWriter writer = mapper.writerWithType(typeFactory
			.constructCollectionType(List.class,
					com.bigdata.rdf.sail.model.RunningQuery.class));

	writer.writeValue(w, rQueries);
}
 
源代码15 项目: SNOMED-in-5-minutes   文件: Utility.java
/**
 * Returns the json for graph.
 *
 * @param object the object
 * @return the json for graph
 * @throws Exception the exception
 */
public static String getJsonForGraph(Object object) throws Exception {
  ObjectMapper mapper = new ObjectMapper();
  AnnotationIntrospector introspector =
      new JaxbAnnotationIntrospector(mapper.getTypeFactory());
  mapper.setAnnotationIntrospector(introspector);
  return mapper.writeValueAsString(object);
}
 
源代码16 项目: concursus   文件: CommandJson.java
private BiFunction<JsonNode, Type, Object> makeDeserialiser(ObjectMapper mapper) {
    final TypeFactory typeFactory = mapper.getTypeFactory();
    return (node, type) -> {
        JavaType javaType = typeFactory.constructType(type);
        try {
            final JsonParser jsonParser = mapper.treeAsTokens(node);
            final ObjectCodec codec = jsonParser.getCodec();

            return codec.readValue(jsonParser, javaType);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    };
}
 
源代码17 项目: concursus   文件: EventJson.java
private BiFunction<JsonNode, Type, Object> makeDeserialiser(ObjectMapper mapper) {
    final TypeFactory typeFactory = mapper.getTypeFactory();
    return (node, type) -> {
        JavaType javaType = typeFactory.constructType(type);
        try {
            final JsonParser jsonParser = mapper.treeAsTokens(node);
            final ObjectCodec codec = jsonParser.getCodec();

            return codec.readValue(jsonParser, javaType);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    };
}
 
源代码18 项目: rest-schemagen   文件: PaginatedResponseTest.java
@Test
public void shouldDeserialize() throws Exception {
    final ObjectMapper mapper = new ObjectMapper();
    final TypeFactory typeFactory = mapper.getTypeFactory();

    final String content = "{\"members\": [{\"value\": \"foo\", \"_schema\":{\"links\": []}}, {\"value\": \"bar\", \"_schema\":{\"links\": []}}], \"offset\": 100, \"limit\": 10, \"total\": 2000, \"_schema\":{\"links\":[]}}";

    final JavaType nameWithSchemaType = typeFactory.constructParametricType(PaginatedResponse.class, Payload.class);
    final PaginatedResponse<Payload> listResponse = mapper.readValue(content, nameWithSchemaType);

    assertThat(listResponse.getMembers()).extracting(ObjectWithSchema::getObject).extracting(p -> p.value).containsExactly("foo", "bar");
    assertThat(listResponse.getLimit()).isEqualTo(10);
    assertThat(listResponse.getOffset()).isEqualTo(100);
    assertThat(listResponse.getTotal()).isEqualTo(2000);
}
 
源代码19 项目: rest-schemagen   文件: ObjectWithSchemaTest.java
@Test
public void shouldDeserialize() throws Exception {
    final ObjectMapper mapper = new ObjectMapper();
    final TypeFactory typeFactory = mapper.getTypeFactory();

    final String content = "{\"value\": \"foo\", \"_schema\": {\"links\": []}}";

    final JavaType nameWithSchemaType = typeFactory.constructParametricType(ObjectWithSchema.class, Payload.class);
    final ObjectWithSchema<Payload> objectWithSchema = mapper.readValue(content, nameWithSchemaType);

    assertThat(objectWithSchema.getObject().value).isEqualTo("foo");
    assertThat(objectWithSchema.getSchema().getLinks()).isEmpty();
    assertThat(objectWithSchema.getMessages()).isEmpty();
}
 
源代码20 项目: proarc   文件: JsonUtils.java
/**
 * Creates a configured mapper supporting JAXB.
 * @see #createObjectMapper(com.fasterxml.jackson.databind.ObjectMapper)
 */
public static ObjectMapper createJaxbMapper() {
    ObjectMapper om = createObjectMapper(createObjectMapper());
    JaxbAnnotationIntrospector jaxbIntr = new JaxbAnnotationIntrospector(om.getTypeFactory());
    JacksonAnnotationIntrospector jsonIntr = new JacksonAnnotationIntrospector();
    om.setAnnotationIntrospector(new AnnotationIntrospectorPair(jsonIntr, jaxbIntr));
    return om;
}