Java中xml转javaBean
maven坐标
<dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.13.4</version></dependency>
代码测试
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