private static SerializerFactoryConfig getSerializerFactoryConfig(ObjectMapper objectMapper) { return ((BasicSerializerFactory) objectMapper.getSerializerFactory()).getFactoryConfig(); }
private static SerializerFactoryConfig getSerializerFactoryConfig(ObjectMapper objectMapper) { return ((BasicSerializerFactory) objectMapper.getSerializerFactory()).getFactoryConfig(); }
/** * Returns the {@link JsonSerializer} for the given type, or {@literal null} if none available. * * @param type must not be {@literal null}. * @return */ public JsonSerializer<?> getTypeSerializer(Class<?> type) { Assert.notNull(type, "Type must not be null!"); try { SerializerProvider provider = mapper.getSerializerProvider(); if (!(provider instanceof DefaultSerializerProvider)) { return null; } provider = ((DefaultSerializerProvider) provider).createInstance(mapper.getSerializationConfig(), mapper.getSerializerFactory()); return provider.findValueSerializer(type); } catch (JsonMappingException o_O) { return null; } }
@Autowired public void initPaymentTypeIdResolver(ObjectMapper objectMapper) throws JsonMappingException { SerializationConfig serializationConfig = objectMapper.getSerializationConfig(); JavaType javaType = objectMapper.getTypeFactory().constructType(PaymentDto.class); paymentTypeIdResolver = objectMapper.getSerializerFactory().createTypeSerializer(serializationConfig, javaType).getTypeIdResolver(); }
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(); }
/** * Gets a {@link SerializerProvider} configured with the {@link ObjectMapper}'s {@link SerializationConfig} * ({@link ObjectMapper#getSerializationConfig()}) to be used for serialization. * <p> * Note that the {@link ObjectMapper}'s {@link SerializerProvider} ({@link ObjectMapper#getSerializerProvider()}) * cannot be used directly, because the {@link SerializerProvider}'s {@link SerializationConfig} ({@link SerializerProvider#getConfig()}) is null, * which causes NullPointerExceptions when it is used. */ private SerializerProvider getSerializerProvider(ObjectMapper mapper) { SerializerProvider provider = serializerProviders.get(mapper); if (provider == null) { SerializerProvider newProvider = ((DefaultSerializerProvider) mapper.getSerializerProvider()) .createInstance(mapper.getSerializationConfig(), mapper.getSerializerFactory()); SerializerProvider existingProvider = serializerProviders.putIfAbsent(mapper, newProvider); provider = (existingProvider == null) ? newProvider : existingProvider; } return provider; }
/** * Gets a serializer that will write the {@link #object} unwrapped. */ private JsonSerializer<Object> getBeanSerializer(ObjectMapper mapper) throws JsonMappingException { JsonSerializer<Object> jsonSerializer = beanSerializers.get(object.getClass()); if (jsonSerializer == null) { SerializerProvider serializerProvider = getSerializerProvider(mapper); JsonSerializer<Object> newSerializer = mapper.getSerializerFactory().createSerializer( serializerProvider, mapper.getSerializationConfig().constructType(object.getClass())) .unwrappingSerializer(NameTransformer.NOP); if (newSerializer instanceof ResolvableSerializer) { ((ResolvableSerializer) newSerializer).resolve(serializerProvider); } JsonSerializer<Object> existingSerializer = beanSerializers.putIfAbsent( object.getClass(), newSerializer); jsonSerializer = (existingSerializer == null) ? newSerializer : existingSerializer; } return jsonSerializer; }
public static ObjectMapper createObjectMapper( BeanSerializerModifier modifier) { ObjectMapper mapper = new ObjectMapper() .setSerializationInclusion(JsonInclude.Include.NON_NULL) .setVisibility(PropertyAccessor.ALL, Visibility.NONE) .setVisibility(PropertyAccessor.FIELD, Visibility.ANY) .registerModule(ChartEnumSerializer.getModule()) .registerModule(StopSerializer.getModule()) .registerModule(TimeUnitMultiplesSerializer.getModule()) .registerModule(SolidColorSerializer.getModule()) .registerModule(AxisListSerializer.getModule()) .registerModule(PaneListSerializer.getModule()) .registerModule(DateSerializer.getModule()) .registerModule(InstantSerializer.getModule()); // serializer modifier used when basic serializer isn't enough return mapper.setSerializerFactory( mapper.getSerializerFactory().withSerializerModifier(modifier)); }
/** * Returns the {@link JsonSerializer} for the given type, or {@literal null} if none available. * * @param type must not be {@literal null}. * @return */ public JsonSerializer<?> getTypeSerializer(Class<?> type) { Assert.notNull(type, "Type must not be null!"); try { SerializerProvider provider = mapper.getSerializerProvider(); if (!(provider instanceof DefaultSerializerProvider)) { return null; } provider = ((DefaultSerializerProvider) provider).createInstance(mapper.getSerializationConfig(), mapper.getSerializerFactory()); return provider.findValueSerializer(type); } catch (JsonMappingException o_O) { return null; } }
private BeanHelper getBeanHelper(Class<?> beanClass) { if (beanClass == null) { return null; } try { final DefaultSerializerProvider.Impl serializerProvider1 = (DefaultSerializerProvider.Impl) objectMapper.getSerializerProvider(); final DefaultSerializerProvider.Impl serializerProvider2 = serializerProvider1.createInstance(objectMapper.getSerializationConfig(), objectMapper.getSerializerFactory()); final JavaType simpleType = objectMapper.constructType(beanClass); final JsonSerializer<?> jsonSerializer = BeanSerializerFactory.instance.createSerializer(serializerProvider2, simpleType); if (jsonSerializer == null) { return null; } if (jsonSerializer instanceof BeanSerializer) { return new BeanHelper((BeanSerializer) jsonSerializer); } else { final String jsonSerializerName = jsonSerializer.getClass().getName(); if (settings.displaySerializerWarning) { TypeScriptGenerator.getLogger().verbose(String.format("Unknown serializer '%s' for class '%s'", jsonSerializerName, beanClass)); } return null; } } catch (JsonMappingException e) { throw new RuntimeException(e); } }
objectMapper.getSerializerFactory().withSerializerModifier( beanSerializerModifier ));
private static ObjectMapper initWriteObjectMapper(ObjectMapper readObjectMapper) { // 拷贝 readObjectMapper ObjectMapper writeObjectMapper = readObjectMapper.copy(); // null 处理 writeObjectMapper.setSerializerFactory(writeObjectMapper.getSerializerFactory().withSerializerModifier(new BladeBeanSerializerModifier())); writeObjectMapper.getSerializerProvider().setNullValueSerializer(BladeBeanSerializerModifier.NullJsonSerializers.STRING_JSON_SERIALIZER); return writeObjectMapper; }