首页 > 编程语言 >springboot的xml和java对象转换

springboot的xml和java对象转换

时间:2023-05-20 17:47:29浏览次数:35  
标签:xml java springboot private String JacksonXmlElementWrapper localName Data Jacks

package com.zygh.tscmp.pojo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import lombok.Data; import lombok.experimental.Accessors; import java.util.List; /** * 定义信号控制传输对象 * @JacksonXmlRootElement: 用在类上,用来自定义根节点名称; * @JacksonXmlProperty: 用在属性上,用来自定义子节点名称; * @JacksonXmlElementWrapper: 用在属性上,可以用来嵌套包装一层父节点,或者禁用此属性参与 XML 转换。 */ @Data @JacksonXmlRootElement(localName = "Message") @Accessors(chain = true) public class SystemSignalControlMessage extends MessageCommonField { @JacksonXmlElementWrapper(localName = "Body") @JacksonXmlProperty(localName = "Body") private Body body; @Data public static class Body { @JacksonXmlElementWrapper(localName = "Operation") @JacksonXmlProperty(localName = "Operation") private Operation operation; } @Data public static class Operation { //路口控制方式参数对象 @JacksonXmlElementWrapper(localName = "TSCCmd") @JacksonXmlProperty(localName = "TSCCmd") private TSccMd tSCCmd; @JacksonXmlProperty(localName = "order",isAttribute = true) private String order; @JacksonXmlProperty(localName = "name",isAttribute = true) private String name; } /** * 路口控制方式参数对象 */ @Data public static class TSccMd { /** * 指定控制方式 */ @JacksonXmlElementWrapper(localName = "CrossControlMode") @JacksonXmlProperty(localName = "CrossControlMode") private CrossControlMode crossControlMode; /** * 多个锁定交通流向 */ @JacksonXmlElementWrapper(localName = "LockFlowDirection") @JacksonXmlProperty(localName = "LockFlowDirection") private List<LockFlowDirection> lockFlowDirection; /** * 指定控制方案 */ @JacksonXmlElementWrapper(localName = "CrossPlan") @JacksonXmlProperty(localName = "CrossPlan") private CrossPlan crossPlan; /** * 指定阶段-扩展参数 */ @JacksonXmlElementWrapper(localName = "CrossStage") @JacksonXmlProperty(localName = "CrossStage") private CrossStage crossStage; /** * 中心临时方案控制-扩展参数 */ @JacksonXmlElementWrapper(localName = "TemporaryControlPlan") @JacksonXmlProperty(localName = "TemporaryControlPlan") private TemporaryControlPlan temporaryControlPlan; } /** * 中心临时方案控制-扩展对象 */ @Data public static class TemporaryControlPlan { @JacksonXmlProperty(localName = "CrossID") private String crossID; @JacksonXmlProperty(localName = "CycleLen") private String cycleLen; @JacksonXmlProperty(localName = "CoordStageNo") private String coordStageNo; @JacksonXmlProperty(localName = "OffSet") private String offSet; @JacksonXmlProperty(localName = "StagePlanNo") private String stagePlanNo; @JacksonXmlProperty(localName = "PlanNo") private String planNo; @JacksonXmlElementWrapper(useWrapping = false) @JacksonXmlProperty(localName = "StageNoList") private List<StageNoList> stageNoLists; } /** * 指定阶段-扩展对象 */ @Data public static class StageNoList { @JacksonXmlProperty(localName = "SeqNo") private String seqNo; @JacksonXmlProperty(localName = "StageNo") private String stageNo; @JacksonXmlProperty(localName = "StageTime") private String stageTime; } /** * 指定阶段-扩展对象 */ @Data public static class CrossStage { @JacksonXmlProperty(localName = "CrossID") private String crossID; @JacksonXmlProperty(localName = "StageNo") private String stageNo; } /** * 指定控制方案对象 */ @Data public static class CrossPlan { @JacksonXmlProperty(localName = "CrossID") private String crossID; @JacksonXmlProperty(localName = "PlanNo") private String planNo; } /** * 路口控制方式对象 */ @Data public static class CrossControlMode { @JacksonXmlProperty(localName = "CrossID") private String crossID; @JacksonXmlProperty(localName = "Value") private String value; } /** * 锁定交通流向对象 */ @Data public static class LockFlowDirection { @JacksonXmlProperty(localName = "CrossID") private String crossID; @JacksonXmlProperty(localName = "Type") private String type; @JacksonXmlProperty(localName = "Entrance") private String entrance; @JacksonXmlProperty(localName = "Exit") private String exit; @JacksonXmlProperty(localName = "StartTime") private String startTime; @JacksonXmlProperty(localName = "Duration") private String duration; } }

 

 

        <!--        jackson-dataformat-xml是xml和bean转换依赖的包-->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>

 

参考:https://blog.51cto.com/wuyongyin/5684578

标签:xml,java,springboot,private,String,JacksonXmlElementWrapper,localName,Data,Jacks
From: https://www.cnblogs.com/liubaihui/p/17417514.html

相关文章

  • springboot整合redis
     前言Redis是一款key-value存储结构的内存级NoSQL数据库支持多种数据存储格式支持持久化支持集群Redis下载(Windows版)https://github.com/tporadowski/redis/releasesRedis安装与启动(Windows版)Windows解压安装或一键式安装服务端启动命令redis-server.exe......
  • Java接口自动化-excel中参数化随机数-反射
    1.最近在想到一个提高档次的一个参数化随机数的方法:反射场景:一般真实的测试数据不会写在excel表中,都是以${}的格式表示,对应的测试数据是写在了项目的properties或者yaml文件中。2.例如:注册,登录场景,随机生成手机号(1).excel设计随机参数:上图随机参数手机号是${generatePhone......
  • java8
    1.编写一个方法,实现冒泡排序(由小到大),并调用该方法packagetest;publicclassccc1{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintx[]={1,3,5,6,7,2};paixu(x);for(inti=0;i<x.length;i++){System.out.println(x[i]);}}publicstaticvoi......
  • Jenkins 自动部署 SpringBoot
    Jenkins是流行的CI/DI工具。什么是CI/DI呢?CI/CD的核心概念可以总结为三点:持续集成持续交付持续部署简单来说就是将不同代码的分支合并到主分支,并自动进行打包,编译,测试,部署到生产环境的交付流程。 在这里用阿里云主机演示Jenkins自动部署SpringBoot项目。可以到阿里云官......
  • 数据表单JavaScript代码
    functionload_suoshugaoxiao(){ common_post.postPortal({ "ac":"get_data_by_sql_back_data_table_from_portal_with_table_id", "sql":"selectmingchenfromtable_idwheregongjiandanweileixing='高校'&q......
  • jre jdk更改目录后Java无法运行问题解决方案
    问题:在将Java文件(包含jdkjre)由C盘直接剪贴到D盘后,所有Java程序无法运行,且其Java图标不再显示。解决方案:首先更改环境变量。当我们单纯地将Java文件更改位置后,我们计算机的环境变量仍未改变,依旧是当时安装Java时的配置。步骤:控制面板—>系统和安全—>系统—>高级系统设置—>环境......
  • 什么是springboot&什么是spring
    1.什么是springbootspringboot是一个基于spring的开发框架,旨在简化sping应用的初始配置和开发过程。Springboot集成了对大部分目前流行的开发框架,使得开发者能够快速搭建spring项目。Springboot的核心设计思想是“约定优于配置”,基于这一原则,springboot极大地简化了项目和框架地......
  • springboot基于vue的MOBA类游戏攻略分享平台、游戏资讯分享平台,附源码+数据库+lw文档+
    1、项目介绍任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于java语言设计并实现了MOBA类游戏攻略分享平台。该系统基于B/S即所谓浏览器/服务器模式,应用java技术,选择MySQL作为后台数据库。系统主要包括系统首......
  • java锁
    1.什么是锁针对于一个共享资源,如果有两个或两个以上的线程访问该资源,可能会导致该共享资源最后的结果与我们预期的结果不一致。比如一个共享变量,其中A线程将其从0循环加一十次,最后结果为十,但是再A线程对该变量循环加一的时候,有个B线程进行了改边该变量,那么可能最后A线程执行结束......
  • From Java To Kotlin:空安全、扩展、函数、Lambda很详细,这次终于懂了
    FromJavaToKotlin,空安全、扩展、函数、Lambda概述(Summarize)• Kotlin是什么?• 可以做什么?• Android官方开发语言从Java变为Kotlin,Java有哪些问题?• Kotlin的优点• Kotlin特性(Features)Kotlin是什么?Kotlin出自于捷克一家软件研发公司 JetB......