【发布时间】:2013-12-15 09:55:43
【问题描述】:
此资源上已有same issue。但答案对我来说似乎完全错误,并且对我不起作用。
什么问题:
com.fasterxml.jackson.databind.JsonMappingException: 无法解析 将 id 'MyRequest$GetAll' 键入 [simple type, class 请求]
我有什么:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@class")
@JsonSubTypes({ @JsonSubTypes.Type(value = MyRequest.GetAll.class)})
public class Request {
}
public class MyRequest extends Request {
public static class GetAll extends MyRequest {
public GetProfiles() {
}
}
我尝试做的事情:
我尝试遵循that 的建议,将子类型注册从注解移至 java 代码:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@class")
public class Request {
}
public class MyRequest extends Request {
public static class GetAll extends MyRequest {
public GetProfiles() {
}
}
public class Utils {
private static final ObjectMapper mapper;
static {
mapper = new ObjectMapper();
registerSubtypes();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
}
private static registerSubtypes() { //REGISTER ALL SUBTYPES
mapper.registerSubtypes(MyRequest.GetAll.class);
//...
}
}
但是没有结果,我还是得到了一个异常! 在这种情况下最奇怪的是它在我的本地机器上可以正常工作,但在部署后无法正常工作。
问题:
我应该如何解决这个问题?
【问题讨论】:
标签: java json spring jackson fasterxml