Jackson JSON has no problem serializing/deserializing this class:
public class MyClass {
public class Nested {
public String string;
public Ne
Looks like the recognition of non-static inner classes is done where they are properties directly on their containing bean (BeanDeserializerBase.java
line 476 in 2.6.3). So an intervening Collection deserializer would go past that. A custom deserializer is likely the simplest option here.
Note that you can still use Jackson to read the properties of Nested
, and just implement the construction of it yourself, in a custom deserializer only used when deserializing a list of Nested
objects.
To do this, annotate the list like so:
@JsonDeserialize(contentUsing = NestedDeserializer.class)
public List nestedList;
and then use a custom deserializer that will:
Look at the parsing context when called to find the containing MyClass
instance.
Encapsulate a default/root-level deserializer of Nested
to delegate the work of deserializing the content to.
For example:
public static final class NestedDeserializer extends StdDeserializer
implements ResolvableDeserializer {
private JsonDeserializer