我有以下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)?

10-01 13:37