gpt4 book ai didi

json - jackson :如何治疗{type:xx}?

转载 作者:行者123 更新时间:2023-12-01 11:56:50 25 4
gpt4 key购买 nike

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

所有的 getter 和 setter 等等。

上面的 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”实际上是要反序列化的类?

其他选择是告诉 jettison 不要包含该类型 - 如何?

最佳答案

树模型是可能的;或者只是一个简单的包装器,例如:

class {
public ResourceWithType resourceWithType;
}

让你打开它。但通常框架本身应该处理解包,因为它们是添加额外包装的框架(默认情况下,Jackson 不会在其中添加“resourceWithType”)。

关于json - jackson :如何治疗{type:xx}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6329601/

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