у меня Джексон объект:десериализация JSON для работы объектов Джексона, но не при использовании Джерси
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
@Id @ObjectId
private String _id;
private String firstName;
private String lastName;
public Address address;
//getters/Setters
}
Когда я запускаю мое модульное тестирование, чтобы преобразовать JSON строку в объект Джексона с по умолчанию ObjectMapper, я могу видеть что адрес правильно преобразован! => Тест проходит
@Test
public void UserWithAddressShouldGiveValidJSONObject() throws Exception {
//Given
String userJSON = "{\"firstName\":\"Michel\",\"lastName\":\"Thom\",\"address\":{\"no\":\"12\",\"street\":\"example street\",\"postalCode\":\"555\",\"city\":\"New York\"}}";
//When
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(userJSON, User.class);
//Then
assertEquals("Michel", user.getFirstName());
assertEquals("Thom", user.getLastName());
assertEquals("New York", user.getAddress().getCity());
}
Но когда я получаю же JSON в Джерси, объект Адрес пуст!
@POST
@Consumes("application/json")
public Response saveUser(User user) throws Exception {
user.toString();
}
Json получил от Джерси:
{ "firstName" : "Michel", "lastName" : "Thom", "address" : { }}
Что я не хватает?