Skip to content

Commit a55f327

Browse files
authored
Fix JsonAlias with unwrapped lists (#456)
1 parent bd95805 commit a55f327

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

src/main/java/com/fasterxml/jackson/dataformat/xml/deser/WrapperHandlingDeserializer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ public JsonDeserializer<?> createContextual(DeserializationContext ctxt,
9292
}
9393
// not optimal; should be able to use PropertyName...
9494
unwrappedNames.add(prop.getName());
95+
for (PropertyName alias : prop.findAliases(ctxt.getConfig())) {
96+
unwrappedNames.add(alias.getSimpleName());
97+
}
9598
}
9699
// Ok: if nothing to take care of, just return the delegatee...
97100
if (unwrappedNames == null) {

src/test/java/com/fasterxml/jackson/dataformat/xml/lists/ListDeserializationTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.fasterxml.jackson.dataformat.xml.lists;
22

3+
import com.fasterxml.jackson.annotation.JsonAlias;
34
import java.util.*;
45

56
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@@ -68,6 +69,7 @@ static class ListBeanWrapped
6869
static class ListBeanUnwrapped
6970
{
7071
@JacksonXmlElementWrapper(useWrapping=false)
72+
@JsonAlias("aliasValue")
7173
public List<Integer> values;
7274
}
7375

@@ -193,6 +195,19 @@ public void testUnwrappedListBeanDeser() throws Exception
193195
assertEquals(Integer.valueOf(3), bean.values.get(2));
194196
}
195197

198+
public void testUnwrappedAliasListBeanDeser() throws Exception
199+
{
200+
ListBeanUnwrapped bean = MAPPER.readValue(
201+
"<ListBeanUnwrapped><aliasValue>1</aliasValue><aliasValue>2</aliasValue><aliasValue>3</aliasValue></ListBeanUnwrapped>",
202+
ListBeanUnwrapped.class);
203+
assertNotNull(bean);
204+
assertNotNull(bean.values);
205+
assertEquals(3, bean.values.size());
206+
assertEquals(Integer.valueOf(1), bean.values.get(0));
207+
assertEquals(Integer.valueOf(2), bean.values.get(1));
208+
assertEquals(Integer.valueOf(3), bean.values.get(2));
209+
}
210+
196211
// [dataformat-xml#191]
197212
public void testListDeser191() throws Exception
198213
{

0 commit comments

Comments
 (0)