我希望有一个服务可以回复POST请求/联系以下有效负载:
{"records":[{"firstname":"John","lastname":"Doe"}]}
理想情况下,记录应该是各种类型的包装:联系人,订单等。这就是为什么我想使用泛型类型,但泽西岛似乎无法解组它。这是我的代码:
@Controller
@Path("/contact")
public class ContactResource {
@Autowired
private ContactService contactService;
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public List<Contact> saveContact(final Records<Contact> contact) {
return Arrays.asList(contactService.saveContact(contact.records.get(0)));
}
}
@XmlRootElement
public class Records<T> {
public List<T> records;
}
似乎使用自定义的javax.ws.rs.ext.MessageBodyReader可以解决我的问题。正确的吗?
答案 0 :(得分:1)
看起来您正在使用自然 JSON编码 - 为了能够处理它,您应该按照here所述配置Jersey。
在用于配置的一个单一bean中的某些@PostConstruct中,包含以下调用:
JSONConfiguration.natural().build();