diff --git a/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/WrapperHandlingDeserializer.java b/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/WrapperHandlingDeserializer.java index 57b11a947..b1a9f3d15 100644 --- a/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/WrapperHandlingDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/WrapperHandlingDeserializer.java @@ -92,6 +92,9 @@ public JsonDeserializer createContextual(DeserializationContext ctxt, } // not optimal; should be able to use PropertyName... unwrappedNames.add(prop.getName()); + for (PropertyName alias : prop.findAliases(ctxt.getConfig())) { + unwrappedNames.add(alias.getSimpleName()); + } } // Ok: if nothing to take care of, just return the delegatee... if (unwrappedNames == null) { diff --git a/src/test/java/com/fasterxml/jackson/dataformat/xml/lists/ListDeserializationTest.java b/src/test/java/com/fasterxml/jackson/dataformat/xml/lists/ListDeserializationTest.java index d6fc54d69..fc316d9cc 100644 --- a/src/test/java/com/fasterxml/jackson/dataformat/xml/lists/ListDeserializationTest.java +++ b/src/test/java/com/fasterxml/jackson/dataformat/xml/lists/ListDeserializationTest.java @@ -1,5 +1,6 @@ package com.fasterxml.jackson.dataformat.xml.lists; +import com.fasterxml.jackson.annotation.JsonAlias; import java.util.*; import com.fasterxml.jackson.annotation.JsonPropertyOrder; @@ -68,6 +69,7 @@ static class ListBeanWrapped static class ListBeanUnwrapped { @JacksonXmlElementWrapper(useWrapping=false) + @JsonAlias("aliasValue") public List values; } @@ -193,6 +195,19 @@ public void testUnwrappedListBeanDeser() throws Exception assertEquals(Integer.valueOf(3), bean.values.get(2)); } + public void testUnwrappedAliasListBeanDeser() throws Exception + { + ListBeanUnwrapped bean = MAPPER.readValue( + "123", + ListBeanUnwrapped.class); + assertNotNull(bean); + assertNotNull(bean.values); + assertEquals(3, bean.values.size()); + assertEquals(Integer.valueOf(1), bean.values.get(0)); + assertEquals(Integer.valueOf(2), bean.values.get(1)); + assertEquals(Integer.valueOf(3), bean.values.get(2)); + } + // [dataformat-xml#191] public void testListDeser191() throws Exception {