gpt4 book ai didi

java - Jersey 不解码 Java 泛型类型

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:44 25 4
gpt4 key购买 nike

我想要一个服务来响应/contact 上的 POST 请求,负载如下:

{"records":[{"firstname":"John","lastname":"Doe"}]} 

理想情况下,记录应该是各种类型的包装器:联系人、订单等。这就是为什么我想使用通用类型,但 Jersey 似乎无法解码它。这是我的代码:

@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 可以解决我的问题。正确吗?

最佳答案

看起来您正在使用自然 JSON 编码 - 为了能够处理它,您应该按照描述配置 Jersey here .

在用于配置的单例 bean 之一的某些 @PostConstruct 中,包括以下调用:

JSONConfiguration.natural().build();

关于java - Jersey 不解码 Java 泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6151093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com