将xml字符串转换为Java对象

我有以下xml字符串.我想将其转换为 java对象,以使用该对象的字段映射每个标记.如果我可以引入与标记名称相比的不同字段名称,那就更好了.我怎么能这样做?我正在寻找JAXB,但我仍然对“ns4:response”和标签内的标签等部分感到困惑.先感谢您…
<ns4:response>
    <count>1</count>
    <limit>1</limit>
    <offset>1</offset>
    <ns3:payload xsi:type="productsPayload">
        <products>
            <product>
                <avgRating xsi:nil="true"/>
                <brand>Candie's</brand>
                <description>
                    <longDescription>
                    long descriptions
                    </longDescription>
                    <shortDescription>
                    short description
                    </shortDescription>
                </description>
                <images>
                    <image>
                        <altText>alternate text</altText>
                        <height>180.0</height>
                        <url>
                        url
                        </url>
                        <width>180.0</width>
                    </image>
                </images>
                <price>
                    <clearancePrice xsi:nil="true"/>
                    <regularPrice xsi:nil="true"/>
                    <salePrice>28.0</salePrice>
                </price>
            </product>
        </products>
    </ns3:payload>
</ns4:response>
JAXB是Java标准( JSR-222),用于将对象转换为XML或从XML转换对象.以下应该有所帮助:

从字符串中解组

在JAXB impl可以解组它之前,您需要将String包装在StringReader的实例中.

StringReader sr = new StringReader(xmlString);
JAXBContext jaxbContext = JAXBContext.newInstance(Response.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
Response response = (Response) unmarshaller.unmarshal(sr);

不同的字段和XML名称

您可以使用@XmlElement批注指定您希望元素名称的内容.默认情况下,JAXB会查看属性.如果您希望将映射基于字段,则需要设置@XmlAccessorType(XmlAccessType.FIELD).

@XmlElement(name="count")
private int size;

命名空间

@XmlRootElement和@XmlElement注释还允许您在需要时指定命名空间限定.

@XmlRootElement(namespace="http://www.example.com")
public class Response {
}

欲获得更多信息

> http://blog.bdoughan.com/2010/08/jaxb-namespaces.html
> http://blog.bdoughan.com/2012/07/jaxb-and-root-elements.html
> http://blog.bdoughan.com/2011/06/using-jaxbs-xmlaccessortype-to.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇