Tag: unmarshalling

使用JAXB进行XML解组

我有一个XML文件,我试图解组,但我无法弄清楚如何做到这一点。 XML看起来像 draft Serial amt Amount http somehost.com/asdf 当我将params作为根元素并且没有服务器元素或配置为根元素时,我以前可以解组。 我添加了一个配置类来尝试取消编组,但我不知道我哪里出错了。 我的课看起来像 @XmlRootElement public class Config { private Params params = new Params(); @XmlElement(name=”params”) public Params getParams() { return params; } public void setParam(Params params) { this.params = params; } } public class Params { private List params = new ArrayList(); public List getParam() { return […]

getter与setter与成员之间的JAXB注释之间的区别是什么?

标题说明了一切。 我想知道在字段/ getter / setter上放置JAXB注释(如@XmlElement )之间的主要区别是什么。 在我看来(在简单的情况下)它并不重要。 我们拿这个吧 class A { private String a; public String getA() { return a; } public void setA(String a) { this.a = a; } } 现在在我看来,如果我将@XmlElement放在成员字段或getter / setter上并不重要。 它只是编组好吧。 当我需要做出改变并且什么时候重要时,是否有任何用例? 当我去解组这个(xml回到A)JAXB具体做什么? 我正在使用JAXB MOXy实现 谢谢

使用Xpath表达式和jaxb解组XML

我是JAXB的新手,想知道是否有一种方法可以将XML解组为我的响应对象但使用xpath表达式。 问题是我打电话给第三方网络服务,我收到的回复有很多细节。 我不希望将XML中的所有细节映射到我的响应对象。 我只想从xml中映射一些细节,使用特定的XPath表达式将其映射到我的响应对象。 是否有注释可以帮助我实现这一目标? 例如,考虑以下响应 1 Ian MG Road 我只对检索街道名称感兴趣所以我想使用xpath表达式使用’root / record / AddressDetails / street’获取street的值并将其映射到我的响应对象 public class Response{ // How do i map this in jaxb, I do not wish to map record,id or name elements String street; //getter and setters …. } 谢谢

JAXB Unmarshalling:对象列表

我有 @XmlRootElement(namespace = “http://www.w3.org/2005/Atom”, name = “content”) @XmlType(name = “course”) public class Course implements Resource … @XmlElementWrapper(name=”subcourses”) @XmlElement(name=”course”) List subcourses; //!? 和Xlink类,它在内联变量中工作正常。 public class Xlink { private String href; private String value; @XmlAttribute(namespace = “http://www.w3.org/1999/xlink”) public String getHref() { return href; } public void setHref(String href) { this.href = href; } @XmlValue public String getValue() […]

如何正确序列化和反序列化CSV?

我一直在尝试将对象序列化为CSV String但该对象包含List而@JsonUnwrapped对List对象不起作用。 预期样本输出 : color,part.name\n red,gearbox\n red,door\n red,bumper 实际产量 : com.fasterxml.jackson.core.JsonGenerationException: Unrecognized column ‘name’: 这是我的代码 :(大部分是2 POJO) import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fasterxml.jackson.annotation.JsonRootName; import com.fasterxml.jackson.dataformat.csv.CsvMapper; import com.fasterxml.jackson.dataformat.csv.CsvSchema; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; import java.io.IOException; import static java.util.Arrays.asList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; public class NestedWrapping { @JsonRootName(“Car”) @JsonInclude(JsonInclude.Include.NON_DEFAULT) @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, […]

JAXB解组中XML中的命名空间问题

我有一个XML来解组JAXB。 如果我从元素中删除所有命名空间属性,但是如果我保留命名空间属性,则在解组后得到一个空对象,代码工作正常。 XML是这样的: kitty kitty2 我的动物豆是这样的: @XmlRootElement(name = “Animal”) public class Animal{ List cats; @XmlElement(name = “Cat”) public List getCats() { return cats; } public void setCats(Listcats) { this.cats= cats; } } Cats bean就像: @XmlRootElement(name = “Cat”) public class Cat { private String zId; @XmlAttribute(name = “z:Id”, namespace=”http://schemas.microsoft.com/2003/10/Serialization/”) public String getzId() { return zId; } […]

JAXB解组“通用”真实世界文档

我们有一大堆风格的配置文档 …more content ..more content … 通用实现类都使用Jaxb本身进行映射。 在我最终回归到Xstream之前,向社区提出一个问题:是否有一种(非黑客)方式可以在Jaxb中解组。 到目前为止我们尝试使用@XMLAdapter进行“嵌套”解组,其中“bar”字段获取Element,获取目标类并调用另一个“unmarshall”循环。 这种方法已经a)非常慢并且b)在切换到Java 7时被打破,其中一些神奇的ThreadLocal在从内部unmarshall返回时破坏了上下文。 我发现MOXy可以使用@XmlDiscriminatorNode支持这个 – 这看起来是一个很好的解决方案,我非常喜欢Blaise的非常好的输入 – 但是为了好玩而添加> 7MB的lib不是一个选择。 其他想法?

如何使用jaxb注释使用Jersey将json解组为java bean时使用一些间接

我正在试图解散一些收到的json(来自Jira restful web service)。 问题是:“问题”具有“摘要”属性和字段列表。 摘要不作为接收的json中的属性存在,而是作为“fields”属性的值。 我坚持要对这个结构进行解组: @XmlRootElement class Issue { String summary; List fields; // getters/setters and lots of other fields } 收到JSON: { “expand”:”html”, “self”:”https://example.com/jira/rest/api/latest/issue/XYZ-1234″, “key”:”XYZ-1234″, “fields”: { “summary”: { “name”:”summary”, “type”:”java.lang.String”, “value”:”test 1234″ }, “customfield_10080”: { “name”:”Testeur”, “type”:”com.atlassian.jira.plugin.system.customfieldtypes:userpicker” }, “status”: { “name”:”status”, “type”:”com.atlassian.jira.issue.status.Status”, “value”: { “self”:”https://example.com/jira/rest/api/latest/status/5″, “name”:”Resolved” } }, … }, “transitions”:”https://example.com/jira/rest/api/latest/issue/XYZ-1234/transitions” […]

如何将xml元素绑定到对象成员变量中?

我正在尝试使用moxy将xml解组为对象.Below是xml的示例。 value value of address 以下是我想要映射的课程。 import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.eclipse.persistence.oxm.annotations.XmlPath; @XmlRootElement(name=”root”) @XmlAccessorType(XmlAccessType.FIELD) public class Response { @XmlPath(“name/firstname/text()”) String name; Address address; } class Address { String addressline; } 现在,我如何获取XML中的地址标记的值并将其绑定到类Address的地址行变量。

JAXB避免保存默认值

有没有办法让JAXB不保存哪些值是@Element注释中指定的默认值,然后在从XML加载null或空的元素时设置值? 一个例子: class Example { @XmlElement(defaultValue=”default1″) String prop1; } Example example = new Example(); example.setProp1(“default1”); jaxbMarshaller.marshal(example, aFile); 应该生成: 并在加载时 Example example = (Example) jaxbUnMarshaller.unmarshal(aFile); assertTrue(example.getProp1().equals(“default1”)); 我试图这样做,以生成一个干净的XML配置文件,并使其更好的可读性和更小的尺寸。 提前退位并表示感谢。