对象转xml格式

本文介绍了在Java项目中如何使用JAXB库将一个自定义实体类(如RobotVo对象)转换为XML格式,包括设置XML根元素和属性排序的示例。
摘要由CSDN通过智能技术生成

项目中突然需要一个将数据转xml的功能,如下:

一个实体类
@Data
@ApiModel(value="RobotVo对象", description="")
@XmlAccessorType(XmlAccessType.FIELD)
// XML文件中的根标识
@XmlRootElement(name = "User")
// 控制JAXB 绑定类中属性和字段的排序
@XmlType(propOrder = {
        "robotCode",
        "robotIp",
     
})
public class obj{
    private String robotCode;
    private String robotIp;
}

public static void main(String[] args) {
        Object obj = new Object ();
        obj .setRobotIp("232");
        obj .setRobotCode("232");
        String s = convertToXml(obj );
        System.out.println(s);
    }

    public static String convertToXml(Object obj) {
        // 创建输出流
        StringWriter sw = new StringWriter();
        try {
            // 利用jdk中自带的转换类实现
            JAXBContext context = JAXBContext.newInstance(obj.getClass());

            Marshaller marshaller = context.createMarshaller();
            // 格式化xml输出的格式
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
                    Boolean.TRUE);
            // 将对象转换成输出流形式的xml
            marshaller.marshal(obj, sw);
        } catch (JAXBException e) {
            e.printStackTrace();
        }
        return sw.toString();
    }
结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<User>
    <robotCode>232</robotCode>
    <robotIp>232</robotIp>
</User>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java对象换为XML格式可以通过Java中的JAXB(Java Architecture for XML Binding)实现。JAXB提供了将Java对象XML之间相互换的功能。 以下是一个简单的Java代码示例,演示如何将Java对象换为XML格式: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import java.io.StringWriter; public class ObjectToXml { public static void main(String[] args) throws Exception { // 创建一个Person对象 Person person = new Person(); person.setName("张三"); person.setAge(20); // 创建JAXBContext对象 JAXBContext context = JAXBContext.newInstance(Person.class); // 创建Marshaller对象 Marshaller marshaller = context.createMarshaller(); // 设置Marshaller的属性 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); // 将Java对象换为XML格式 StringWriter writer = new StringWriter(); marshaller.marshal(person, writer); String xml = writer.toString(); System.out.println(xml); } } // 定义一个Person类 import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } ``` 输出结果为: ``` <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <person> <name>张三</name> <age>20</age> </person> ``` 在这个例子中,我们创建了一个Person对象,并使用JAXBContext和Marshaller将其换为XML格式。我们还使用了@XmlRootElement注释来指定根元素的名称。最后,我们将XML字符串打印到控制台上。 注意:在使用JAXB进行对象换时,必须在Java类中使用JAXB注释,以便JAXB可以正确地将Java对象换为XML格式
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值