关于网友提出的“复杂 XML 的序列化反序列化,XML 层级太多,无法反序列化”问题疑问,本网通过在网上对“复杂 XML 的序列化反序列化,XML 层级太多,无法反序列化”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:复杂 XML 的序列化反序列化,XML 层级太多,无法反序列化
描述:
问下,如何反序列化 参数 /config/rules/rule/params/item ?
解决方案1:
你试一下
解决方案2:
package org.model;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "param")
@XmlAccessorType(XmlAccessType.NONE)
public class Param {
@XmlAttribute(name = "name")
private String name;
@XmlAttribute(name = "type")
private String type;
@XmlAttribute(name = "pattern")
private String pattern;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getPattern() {
return pattern;
}
public void setPattern(String pattern) {
this.pattern = pattern;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("Param{");
sb.append("name='").append(name).append('\'');
sb.append(", type='").append(type).append('\'');
sb.append(", pattern='").append(pattern).append('\'');
sb.append('}');
return sb.toString();
}
}
解决方案3:
package org.model;
import javax.xml.bind.annotation.*;
import java.util.List;
@XmlRootElement(name = "rule")
@XmlAccessorType(XmlAccessType.NONE)
public class Rule {
@XmlAttribute(name = "name")
private String name;
@XmlElementWrapper(name = "params")
@XmlElement(name = "item")
private List params;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List getParams() {
return params;
}
public void setParams(List params) {
this.params = params;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("Rule{");
sb.append("name='").append(name).append('\'');
sb.append(", params=").append(params);
sb.append('}');
return sb.toString();
}
}