Java中xml转javaBean

Java中xml转javaBean

maven坐标

xml 复制代码
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
             <version>2.13.4</version>
        </dependency>

代码测试

java 复制代码
import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;

import javax.xml.bind.annotation.XmlRootElement;
import java.time.LocalDateTime;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;

/**
 * Author:daWang
 * Date:2023/9/9  16:38
 */
public class XmlTest {

    public static void main(String[] args) throws Exception{
        String str="<EventNotificationAlert version=\"2.0\" xmlns=\"http://www.hikvision.com/ver20/XMLSchema\">\r\n" +
                "<ipAddress>192.168.1.228</ipAddress>\r\n" +
                "<ipv6Address>::</ipv6Address>\r\n" +
                "<portNo>80</portNo>\r\n" +
                "<protocol>HTTP</protocol>\n" +
                "<macAddress>08:54:11:a1:98:aa</macAddress>\r\n" +
                "<channelID>1</channelID>\r\n" +
                "<dateTime>2023-09-08T15:49:45+08:00</dateTime>\r\n" +
                "<activePostCount>1</activePostCount>\r\n" +
                "<eventType>videoloss</eventType>\r\n" +
                "<eventState>inactive</eventState>\r\n" +
                "<eventDescription>videoloss alarm</eventDescription>\r\n" +
                "<channelName>测试001</channelName>\r\n" +
                "</EventNotificationAlert>";
        ObjectMapper objectMapper = new XmlMapper();

        EventXml eventXml = objectMapper.readValue(str, EventXml.class);

        System.out.println(JSONUtil.toJsonStr(eventXml));

    }



    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class EventXml{

        private String ipAddress;
        private String ipv6Address;
        private Integer portNo;
        private String protocol;
        private String macAddress;
        private Integer channelID;
        private String dateTime;
        private Integer activePostCount;
        private String eventType;
        private String eventState;
        private String eventDescription;
        private String channelName;
    }
}

输出内容

复制代码
Connected to the target VM, address: '127.0.0.1:62168', transport: 'socket'
{"ipAddress":"192.168.1.228","ipv6Address":"::","portNo":80,"protocol":"HTTP","macAddress":"08:54:11:a1:98:aa","channelID":1,"dateTime":"2023-09-08T15:49:45+08:00","activePostCount":1,"eventType":"videoloss","eventState":"inactive","eventDescription":"videoloss alarm","channelName":"测试001"}
Disconnected from the target VM, address: '127.0.0.1:62168', transport: 'socket'

Process finished with exit code 0
相关推荐
今天AI了吗38 分钟前
DeepSeek Harness 深度解析:从评测架构到实战落地
java·网络·数据库·人工智能·架构·java-ee
benchmark_cc40 分钟前
REST API 和 Python SDK 应该怎么选?量化交易数据接口选型实战
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
王的宝库44 分钟前
Go 项目结构:从单文件到标准工程布局
开发语言·后端·golang
Tairitsu_H1 小时前
[C++] 深入理解红黑树:封装set与map
开发语言·c++·set·map·红黑树·模拟实现
许彰午1 小时前
27-AuthService登录链路
java·低代码·架构
泡海椒1 小时前
JQuick-Curl 性能分析:并发场景下的性能表现与调优,第三方接口调用不只要快写也要稳跑
java·开发语言·okhttp
小智老师PMP1 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理
Rain的Java大神之路2 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
自动化监测Learner2 小时前
Navicat Premium 17 中文版安装教程(2026最新版)
java·linux·数据库
江畔柳前堤2 小时前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native