package com.fasterxml.jackson.failing; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.databind.*; public class TestNonStaticInnerClassInList32 extends BaseMapTest { public static class Dog2 { public String name; public List<Leg> legs; // NOTE: non-static on purpose! public class Leg { public int length; } } /* /********************************************************** /* Tests /********************************************************** */ // core/[Issue#32] public void testInnerList() throws Exception { Dog2 dog = new Dog2(); dog.name = "Spike"; dog.legs = new ArrayList<Dog2.Leg>(); dog.legs.add(dog.new Leg()); dog.legs.add(dog.new Leg()); dog.legs.get(0).length = 5; dog.legs.get(1).length = 4; ObjectMapper mapper = new ObjectMapper(); String dogJson = mapper.writeValueAsString(dog); // System.out.println(dogJson); // output: {"name":"Spike","legs":[{length: 5}, {length: 4}]} // currently throws JsonMappingException Dog2 dogCopy = mapper.readValue(dogJson, Dog2.class); assertEquals(dogCopy.legs.get(1).length, 4); // prefer fully populated Dog instance } }