我想將 model_tree 的欄位放入一個物件中。
<form>
<model_trees>
<entry>
<tree_kind>kind</tree_kind>
<age>10</age>
</entry>
</model_trees>
</form>
@JsonIgnoreProperties(ignoreUnknown=true)
@JacksonXmlRootElement(localName = "model_trees")
public class ModelTrees extends BaseEntity {
@JacksonXmlProperty(localName = "tree_kind")
private String treeKind;
@JacksonXmlProperty
private int age;
}
有沒有辦法不為“form”/“entry”元素創建額外的類?
uj5u.com熱心網友回復:
嘗試自定義反序列化器,例如
class DeSerializer extends StdDeserializer<ModelTrees> {
protected DeSerializer() {
super(ModelTrees.class);
}
@Override
public ModelTrees deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
JsonNode node = jp.getCodec().readTree(jp);
JsonNode treesNode = node.get("model_trees");
JsonNode entryNode = treesNode.get("entry");
return new ModelTrees(entryNode.get("tree_kind").textValue(), entryNode.get("age").asInt());
}
}
型號類:
public class ModelTrees {
private String treeKind;
private int age;
public ModelTrees(String treeKind, int age) {
this.treeKind = treeKind;
this.age = age;
}
}
注冊自定義映射器:
XmlMapper mapper = new XmlMapper();
SimpleModule module = new SimpleModule("configModule", com.fasterxml.jackson.core.Version.unknownVersion());
module.addDeserializer(ModelTrees.class, new DeSerializer());
mapper.registerModule(module);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/489238.html
標籤:爪哇 xml 杰克逊-数据格式-xml 杰克
上一篇:使用XSL3.0累加器映射值
下一篇:撒克遜:可分配的折舊時間線
