类com.fasterxml.jackson.databind.KeyDeserializer源码实例Demo

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

@Override
public JsonDeserializer<?> findMapDeserializer(MapType type, DeserializationConfig config, BeanDescription beanDesc,
                                               KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer,
                                               JsonDeserializer<?> elementDeserializer) throws JsonMappingException {
    for (Deserializers deserializers : deserializersList) {
        JsonDeserializer<?> deserializer = deserializers.findMapDeserializer(type, config, beanDesc, keyDeserializer, elementTypeDeserializer, elementDeserializer);
        if (deserializer != null) {
            return deserializer;
        }
    }
    return null;
}
 
@Override
public JsonDeserializer<?> findMapLikeDeserializer(MapLikeType type, DeserializationConfig config, BeanDescription beanDesc,
                                                   KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer,
                                                   JsonDeserializer<?> elementDeserializer) throws JsonMappingException {
    for (Deserializers deserializers : deserializersList) {
        JsonDeserializer<?> deserializer = deserializers.findMapLikeDeserializer(type, config, beanDesc, keyDeserializer, elementTypeDeserializer, elementDeserializer);
        if (deserializer != null) {
            return deserializer;
        }
    }
    return null;
}
 
@Test
public void keyDeserializerInstanceReturnsNull() {

    // given
    VirtualProperty[] customProperties = new VirtualProperty[0];
    Log4j2Lookup valueResolver = new Log4j2Lookup(null);
    JacksonHandlerInstantiator handlerInstantiator = createTestHandlerInstantiator(customProperties, valueResolver);

    // when
    KeyDeserializer result = handlerInstantiator.keyDeserializerInstance(null, null, null);

    // then
    Assert.assertNull(result);

}
 
public RefKeyHandler(JavaType keyType, KeyDeserializer _keyDeserializer) {
    if (keyType == null) {
        throw new IllegalArgumentException("keyType == null");
    }

    this._keyType = keyType;
    this._keyDeserializer = _keyDeserializer;
}
 
@Override
public GuavaMapDeserializer<ImmutableSortedMap<Object, Object>> withResolved(KeyDeserializer keyDeser,
        JsonDeserializer<?> valueDeser, TypeDeserializer typeDeser,
        NullValueProvider nuller)
{
    return new ImmutableSortedMapDeserializer(_containerType, keyDeser, valueDeser, typeDeser, nuller);
}
 
@Override
protected JsonDeserializer<?> _createContextual(JavaType type,
        KeyDeserializer keyDeserializer, TypeDeserializer typeDeserializer,
        JsonDeserializer<?> elementDeserializer, Method method, NullValueProvider nvp)
{
    return new LinkedHashMultimapDeserializer(type, keyDeserializer, typeDeserializer,
            elementDeserializer, method, nvp);
}
 
@Override
protected JsonDeserializer<?> _createContextual(JavaType type,
        KeyDeserializer keyDeserializer, TypeDeserializer typeDeserializer,
        JsonDeserializer<?> elementDeserializer, Method method, NullValueProvider nvp) {
    return new HashMultimapDeserializer(type, keyDeserializer, typeDeserializer,
            elementDeserializer, method, nvp);
}
 
@Override
protected JsonDeserializer<?> _createContextual(JavaType type,
        KeyDeserializer keyDeserializer, TypeDeserializer typeDeserializer,
        JsonDeserializer<?> elementDeserializer, Method method, NullValueProvider nvp) {
    return new LinkedListMultimapDeserializer(type, keyDeserializer, typeDeserializer,
            elementDeserializer, method, nvp);
}
 
@Override
protected JsonDeserializer<?> _createContextual(JavaType type,
        KeyDeserializer keyDeserializer, TypeDeserializer typeDeserializer,
        JsonDeserializer<?> elementDeserializer, Method method,
        NullValueProvider nvp) {
    return new ArrayListMultimapDeserializer(type, keyDeserializer, typeDeserializer,
            elementDeserializer, method, nvp);
}
 
@Override
public ImmutableMapDeserializer withResolved(KeyDeserializer keyDeser,
        JsonDeserializer<?> valueDeser, TypeDeserializer valueTypeDeser,
        NullValueProvider nuller) {
    return new ImmutableMapDeserializer(_containerType, keyDeser,
            valueDeser, valueTypeDeser, nuller);
}
 
源代码11 项目: graphql-spqr   文件: ConvertingDeserializers.java
@Override
public JsonDeserializer<?> findMapDeserializer(MapType type, DeserializationConfig config,
                                               BeanDescription beanDesc, KeyDeserializer keyDeserializer,
                                               TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) {

    return forJavaType(type);
}
 
源代码12 项目: nexus-public   文件: SourceMapDeserializer.java
private SourceMapDeserializer(final MapDeserializer src,
                             final KeyDeserializer keyDeser,
                             final JsonDeserializer<Object> valueDeser,
                             final TypeDeserializer valueTypeDeser,
                             final NullValueProvider nuller,
                             final Set<String> ignorable)
{
  super(src, keyDeser, valueDeser, valueTypeDeser, nuller, ignorable);
}
 
源代码13 项目: vavr-jackson   文件: Issue142Test.java
@BeforeEach
public void before() {
    mapper = new ObjectMapper();
    SimpleModule module = new VavrModule()
            .addKeyDeserializer(MyComparable.class, new KeyDeserializer() {
                @Override
                public Object deserializeKey(String key, DeserializationContext ctxt) {
                    return new MyComparable(Integer.parseInt(key));
                }
            });
    mapper.registerModule(module);
}
 
源代码14 项目: gwt-jackson   文件: RefStdKeyDeserializer.java
@Override
public KeyDeserializer createContextual( DeserializationContext ctxt, BeanProperty property ) throws JsonMappingException {
    if ( ctxt.getContextualType() == null || ctxt.getContextualType().containedType( 0 ) == null || ctxt.getContextualType().containedType( 0 ).containedType( 0 ) == null ) {
        throw JsonMappingException.from( ctxt, "Cannot deserialize Ref<T>. Cannot find the Generic Type T." );
    }
    return new RefStdKeyDeserializer( ctxt.getContextualType().containedType( 0 ).containedType( 0 ) );
}
 
@Override
public KeyDeserializer keyDeserializerInstance(DeserializationConfig config,
		Annotated annotated, Class<?> implClass) {

	return (KeyDeserializer) this.beanFactory.createBean(implClass);
}
 
@Override
public KeyDeserializer keyDeserializerInstance(DeserializationConfig config,
		Annotated annotated, Class<?> implClass) {

	return (KeyDeserializer) this.beanFactory.createBean(implClass);
}
 
源代码17 项目: lams   文件: SpringHandlerInstantiator.java
@Override
public KeyDeserializer keyDeserializerInstance(DeserializationConfig config, Annotated annotated, Class<?> implClass) {
	return (KeyDeserializer) this.beanFactory.createBean(implClass);
}
 
@Override
public JsonDeserializer<?> findMapDeserializer(MapType type, DeserializationConfig config, BeanDescription beanDesc, KeyDeserializer keyDeserializer,
                                               TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer)
        throws JsonMappingException {
    return getDeserializer(type.getRawClass());
}
 
@Override
public JsonDeserializer<?> findMapLikeDeserializer(MapLikeType type, DeserializationConfig config, BeanDescription beanDesc,
                                                   KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer,
                                                   JsonDeserializer<?> elementDeserializer) throws JsonMappingException {
    return getDeserializer(type.getRawClass());
}
 
@Override
public KeyDeserializer keyDeserializerInstance(DeserializationConfig config, Annotated annotated, Class<?> keyDeserClass) {
    return null;
}
 
@Override
public KeyDeserializer keyDeserializerInstance(DeserializationConfig config,
		Annotated annotated, Class<?> serClass) {
	return (KeyDeserializer) this.beanFactory.createBean(serClass);
}
 
public ImmutableBiMapDeserializer(JavaType type, KeyDeserializer keyDeser,
        JsonDeserializer<?> deser, TypeDeserializer typeDeser,
        NullValueProvider nuller) {
    super(type, keyDeser, deser, typeDeser, nuller);
}
 
@Override
public GuavaMapDeserializer<ImmutableBiMap<Object, Object>> withResolved(KeyDeserializer keyDeser,
        JsonDeserializer<?> valueDeser, TypeDeserializer typeDeser,
        NullValueProvider nuller) {
    return new ImmutableBiMapDeserializer(_containerType, keyDeser, valueDeser, typeDeser, nuller);
}
 
GuavaImmutableMapDeserializer(JavaType type, KeyDeserializer keyDeser,
        JsonDeserializer<?> valueDeser, TypeDeserializer valueTypeDeser,
        NullValueProvider nuller) {
    super(type, keyDeser, valueDeser, valueTypeDeser, nuller);
}
 
@Override
protected T _deserializeEntries(JsonParser p, DeserializationContext ctxt)
    throws IOException, JsonProcessingException
{
    final KeyDeserializer keyDes = _keyDeserializer;
    final JsonDeserializer<?> valueDes = _valueDeserializer;
    final TypeDeserializer typeDeser = _valueTypeDeserializer;

    ImmutableMap.Builder<Object, Object> builder = createBuilder();
    for (; p.currentToken() == JsonToken.FIELD_NAME; p.nextToken()) {
        // Must point to field name now
        String fieldName = p.currentName();
        Object key = (keyDes == null) ? fieldName : keyDes.deserializeKey(fieldName, ctxt);
        // And then the value...
        JsonToken t = p.nextToken();
        // 28-Nov-2010, tatu: Should probably support "ignorable properties" in future...
        Object value;            
        if (t == JsonToken.VALUE_NULL) {
            if (!_skipNullValues) {
                value = _nullProvider.getNullValue(ctxt);
                // 14-Sep-2015, tatu: As per [datatype-guava#52], avoid exception due to null
                // TODO: allow reporting problem via a feature, in future?
                if (value != null) {
                    builder.put(key, value);
                }
            }
            continue;
        }
        if (typeDeser == null) {
            value = valueDes.deserialize(p, ctxt);
        } else {
            value = valueDes.deserializeWithType(p, ctxt, typeDeser);
        }
        builder.put(key, value);
    }
    // No class outside of the package will be able to subclass us,
    // and we provide the proper builder for the subclasses we implement.
    @SuppressWarnings("unchecked")
    T map = (T) builder.build();
    return map;
}
 
public ImmutableSortedMapDeserializer(JavaType type, KeyDeserializer keyDeser,
        JsonDeserializer<?> valueDeser, TypeDeserializer typeDeser,
        NullValueProvider nuller) {
    super(type, keyDeser, valueDeser, typeDeser, nuller);
}
 
public LinkedHashMultimapDeserializer(JavaType type, KeyDeserializer keyDeserializer,
        TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) {
    super(type, keyDeserializer, elementTypeDeserializer, elementDeserializer);
}
 
public LinkedHashMultimapDeserializer(JavaType type, KeyDeserializer keyDeserializer,
        TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer,
        Method creatorMethod, NullValueProvider nvp) {
    super(type, keyDeserializer, elementTypeDeserializer, elementDeserializer, creatorMethod, nvp);
}
 
public HashMultimapDeserializer(JavaType type, KeyDeserializer keyDeserializer,
        TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) {
    super(type, keyDeserializer, elementTypeDeserializer, elementDeserializer);
}
 
public HashMultimapDeserializer(JavaType type, KeyDeserializer keyDeserializer,
        TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer,
        Method creatorMethod, NullValueProvider nvp) {
    super(type, keyDeserializer, elementTypeDeserializer, elementDeserializer, creatorMethod, nvp);
}
 
 同包方法