我有以下json:
{"resourceWithType":
{"parentId":0,
"pluginId":0,
"pluginName":"Platforms",
"resourceId":10001,
"resourceName":"snert",
"typeId":10057,
"typeName":"Mac OS X"
}
}
和一堂课
public class ResourceWithType {
String resourceName;
int resourceId;
String typeName;
与所有的获取器和设置器等。
上面的JSON实际上是通过RESTeasy和Jettison提供程序创建的,其中该类用
@XmlRootElement
标记。当我尝试通过以下方式反序列化上述JSON时
ObjectMapper mapper=new ObjectMapper();
ResourceWithType rwt = mapper.readValue(json,ResourceWithType.class);
它失败了
06-13 11:07:55.360: WARN/System.err(26040):
org.codehaus.jackson.map.exc.UnrecognizedPropertyException:
Unrecognized field "resourceWithType"
(Class org.rhq.core.domain.rest.ResourceWithType),
not marked as ignorable
这是可以理解的。
我怎么能告诉 jackson ,嵌入式'resourceWithType'实际上是要反序列化为的类?
另一种选择是告诉杰特森不包括那种类型-怎么样?
最佳答案
也许使用TreeModel API解开第一层(标签名称),然后照常反序列化内部内容(使用绑定API)?