类com.fasterxml.jackson.databind.ser.std.ClassSerializer源码实例Demo

下面列出了怎么用com.fasterxml.jackson.databind.ser.std.ClassSerializer的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
public void completeSetup() {
	NopAnnotationIntrospector annotationIntrospector = NopAnnotationIntrospector.instance;
	ObjectMapper objectMapper = new ObjectMapper();

	this.factory.setObjectMapper(objectMapper);
	assertTrue(this.factory.isSingleton());
	assertEquals(ObjectMapper.class, this.factory.getObjectType());

	Map<Class<?>, JsonDeserializer<?>> deserializers = new HashMap<>();
	deserializers.put(Date.class, new DateDeserializer());

	JsonSerializer<Class<?>> serializer1 = new ClassSerializer();
	JsonSerializer<Number> serializer2 = new NumberSerializer(Integer.class);

	// Disable well-known modules detection
	this.factory.setModules(new ArrayList<>());
	this.factory.setSerializers(serializer1);
	this.factory.setSerializersByType(Collections.singletonMap(Boolean.class, serializer2));
	this.factory.setDeserializersByType(deserializers);
	this.factory.setAnnotationIntrospector(annotationIntrospector);

	this.factory.setFeaturesToEnable(SerializationFeature.FAIL_ON_EMPTY_BEANS,
			DeserializationFeature.UNWRAP_ROOT_VALUE,
			JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER,
			JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS);

	this.factory.setFeaturesToDisable(MapperFeature.AUTO_DETECT_GETTERS,
			MapperFeature.AUTO_DETECT_FIELDS,
			JsonParser.Feature.AUTO_CLOSE_SOURCE,
			JsonGenerator.Feature.QUOTE_FIELD_NAMES);

	assertFalse(getSerializerFactoryConfig(objectMapper).hasSerializers());
	assertFalse(getDeserializerFactoryConfig(objectMapper).hasDeserializers());

	this.factory.setSerializationInclusion(Include.NON_NULL);
	this.factory.afterPropertiesSet();

	assertSame(objectMapper, this.factory.getObject());
	assertTrue(getSerializerFactoryConfig(objectMapper).hasSerializers());
	assertTrue(getDeserializerFactoryConfig(objectMapper).hasDeserializers());

	Serializers serializers = getSerializerFactoryConfig(objectMapper).serializers().iterator().next();
	assertSame(serializer1, serializers.findSerializer(null, SimpleType.construct(Class.class), null));
	assertSame(serializer2, serializers.findSerializer(null, SimpleType.construct(Boolean.class), null));
	assertNull(serializers.findSerializer(null, SimpleType.construct(Number.class), null));

	assertSame(annotationIntrospector, objectMapper.getSerializationConfig().getAnnotationIntrospector());
	assertSame(annotationIntrospector, objectMapper.getDeserializationConfig().getAnnotationIntrospector());

	assertTrue(objectMapper.getSerializationConfig().isEnabled(SerializationFeature.FAIL_ON_EMPTY_BEANS));
	assertTrue(objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.UNWRAP_ROOT_VALUE));
	assertTrue(objectMapper.getFactory().isEnabled(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER));
	assertTrue(objectMapper.getFactory().isEnabled(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS));

	assertFalse(objectMapper.getSerializationConfig().isEnabled(MapperFeature.AUTO_DETECT_GETTERS));
	assertFalse(objectMapper.getDeserializationConfig().isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION));
	assertFalse(objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES));
	assertFalse(objectMapper.getDeserializationConfig().isEnabled(MapperFeature.AUTO_DETECT_FIELDS));
	assertFalse(objectMapper.getFactory().isEnabled(JsonParser.Feature.AUTO_CLOSE_SOURCE));
	assertFalse(objectMapper.getFactory().isEnabled(JsonGenerator.Feature.QUOTE_FIELD_NAMES));
	assertSame(Include.NON_NULL, objectMapper.getSerializationConfig().getSerializationInclusion());
}
 
@Test
public void completeSetup() {
	NopAnnotationIntrospector annotationIntrospector = NopAnnotationIntrospector.instance;
	ObjectMapper objectMapper = new ObjectMapper();

	this.factory.setObjectMapper(objectMapper);
	assertTrue(this.factory.isSingleton());
	assertEquals(ObjectMapper.class, this.factory.getObjectType());

	Map<Class<?>, JsonDeserializer<?>> deserializers = new HashMap<>();
	deserializers.put(Date.class, new DateDeserializer());

	JsonSerializer<Class<?>> serializer1 = new ClassSerializer();
	JsonSerializer<Number> serializer2 = new NumberSerializer(Integer.class);

	// Disable well-known modules detection
	this.factory.setModules(new ArrayList<>());
	this.factory.setSerializers(serializer1);
	this.factory.setSerializersByType(Collections.singletonMap(Boolean.class, serializer2));
	this.factory.setDeserializersByType(deserializers);
	this.factory.setAnnotationIntrospector(annotationIntrospector);

	this.factory.setFeaturesToEnable(SerializationFeature.FAIL_ON_EMPTY_BEANS,
			DeserializationFeature.UNWRAP_ROOT_VALUE,
			JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER,
			JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS);

	this.factory.setFeaturesToDisable(MapperFeature.AUTO_DETECT_GETTERS,
			MapperFeature.AUTO_DETECT_FIELDS,
			JsonParser.Feature.AUTO_CLOSE_SOURCE,
			JsonGenerator.Feature.QUOTE_FIELD_NAMES);

	assertFalse(getSerializerFactoryConfig(objectMapper).hasSerializers());
	assertFalse(getDeserializerFactoryConfig(objectMapper).hasDeserializers());

	this.factory.setSerializationInclusion(Include.NON_NULL);
	this.factory.afterPropertiesSet();

	assertSame(objectMapper, this.factory.getObject());
	assertTrue(getSerializerFactoryConfig(objectMapper).hasSerializers());
	assertTrue(getDeserializerFactoryConfig(objectMapper).hasDeserializers());

	Serializers serializers = getSerializerFactoryConfig(objectMapper).serializers().iterator().next();
	assertSame(serializer1, serializers.findSerializer(null, SimpleType.construct(Class.class), null));
	assertSame(serializer2, serializers.findSerializer(null, SimpleType.construct(Boolean.class), null));
	assertNull(serializers.findSerializer(null, SimpleType.construct(Number.class), null));

	assertSame(annotationIntrospector, objectMapper.getSerializationConfig().getAnnotationIntrospector());
	assertSame(annotationIntrospector, objectMapper.getDeserializationConfig().getAnnotationIntrospector());

	assertTrue(objectMapper.getSerializationConfig().isEnabled(SerializationFeature.FAIL_ON_EMPTY_BEANS));
	assertTrue(objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.UNWRAP_ROOT_VALUE));
	assertTrue(objectMapper.getFactory().isEnabled(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER));
	assertTrue(objectMapper.getFactory().isEnabled(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS));

	assertFalse(objectMapper.getSerializationConfig().isEnabled(MapperFeature.AUTO_DETECT_GETTERS));
	assertFalse(objectMapper.getDeserializationConfig().isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION));
	assertFalse(objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES));
	assertFalse(objectMapper.getDeserializationConfig().isEnabled(MapperFeature.AUTO_DETECT_FIELDS));
	assertFalse(objectMapper.getFactory().isEnabled(JsonParser.Feature.AUTO_CLOSE_SOURCE));
	assertFalse(objectMapper.getFactory().isEnabled(JsonGenerator.Feature.QUOTE_FIELD_NAMES));
	assertSame(Include.NON_NULL, objectMapper.getSerializationConfig().getSerializationInclusion());
}
 
@Test
public void completeSetup() {
	NopAnnotationIntrospector annotationIntrospector = NopAnnotationIntrospector.instance;
	ObjectMapper objectMapper = new ObjectMapper();

	this.factory.setObjectMapper(objectMapper);
	assertTrue(this.factory.isSingleton());
	assertEquals(ObjectMapper.class, this.factory.getObjectType());

	Map<Class<?>, JsonDeserializer<?>> deserializers = new HashMap<Class<?>, JsonDeserializer<?>>();
	deserializers.put(Date.class, new DateDeserializer());

	JsonSerializer<Class<?>> serializer1 = new ClassSerializer();
	JsonSerializer<Number> serializer2 = new NumberSerializer(Integer.class);

	// Disable well-known modules detection
	this.factory.setModules(new ArrayList<>());
	this.factory.setSerializers(serializer1);
	this.factory.setSerializersByType(Collections.singletonMap(Boolean.class, serializer2));
	this.factory.setDeserializersByType(deserializers);
	this.factory.setAnnotationIntrospector(annotationIntrospector);

	this.factory.setFeaturesToEnable(SerializationFeature.FAIL_ON_EMPTY_BEANS,
			DeserializationFeature.UNWRAP_ROOT_VALUE,
			JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER,
			JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS);

	this.factory.setFeaturesToDisable(MapperFeature.AUTO_DETECT_GETTERS,
			MapperFeature.AUTO_DETECT_FIELDS,
			JsonParser.Feature.AUTO_CLOSE_SOURCE,
			JsonGenerator.Feature.QUOTE_FIELD_NAMES);

	assertFalse(getSerializerFactoryConfig(objectMapper).hasSerializers());
	assertFalse(getDeserializerFactoryConfig(objectMapper).hasDeserializers());

	this.factory.setSerializationInclusion(Include.NON_NULL);
	this.factory.afterPropertiesSet();

	assertSame(objectMapper, this.factory.getObject());
	assertTrue(getSerializerFactoryConfig(objectMapper).hasSerializers());
	assertTrue(getDeserializerFactoryConfig(objectMapper).hasDeserializers());

	Serializers serializers = getSerializerFactoryConfig(objectMapper).serializers().iterator().next();
	assertSame(serializer1, serializers.findSerializer(null, SimpleType.construct(Class.class), null));
	assertSame(serializer2, serializers.findSerializer(null, SimpleType.construct(Boolean.class), null));
	assertNull(serializers.findSerializer(null, SimpleType.construct(Number.class), null));

	assertSame(annotationIntrospector, objectMapper.getSerializationConfig().getAnnotationIntrospector());
	assertSame(annotationIntrospector, objectMapper.getDeserializationConfig().getAnnotationIntrospector());

	assertTrue(objectMapper.getSerializationConfig().isEnabled(SerializationFeature.FAIL_ON_EMPTY_BEANS));
	assertTrue(objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.UNWRAP_ROOT_VALUE));
	assertTrue(objectMapper.getFactory().isEnabled(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER));
	assertTrue(objectMapper.getFactory().isEnabled(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS));

	assertFalse(objectMapper.getSerializationConfig().isEnabled(MapperFeature.AUTO_DETECT_GETTERS));
	assertFalse(objectMapper.getDeserializationConfig().isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION));
	assertFalse(objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES));
	assertFalse(objectMapper.getDeserializationConfig().isEnabled(MapperFeature.AUTO_DETECT_FIELDS));
	assertFalse(objectMapper.getFactory().isEnabled(JsonParser.Feature.AUTO_CLOSE_SOURCE));
	assertFalse(objectMapper.getFactory().isEnabled(JsonGenerator.Feature.QUOTE_FIELD_NAMES));
	assertSame(Include.NON_NULL, objectMapper.getSerializationConfig().getSerializationInclusion());
}
 
 同包方法