当前位置: 首页 > news >正文

php 免费装修网站如何开网站卖东西

php 免费装修网站,如何开网站卖东西,柳州网站建设 来宾市网站制作,网站文案案例背景 最近在做发票相关的业务#xff0c;需要对接第三方进行开发票等一系列操作#xff0c;对方的系统是较老系统#xff0c;需要采用XML的请求方式。 思路 一般来说#xff0c;基于springboot的项目采用的都是JSON格式的请求参数和响应参数#xff0c;因此需要做一个转…背景 最近在做发票相关的业务需要对接第三方进行开发票等一系列操作对方的系统是较老系统需要采用XML的请求方式。 思路 一般来说基于springboot的项目采用的都是JSON格式的请求参数和响应参数因此需要做一个转换。 从格式上XML格式的数据是一个XML头后面是各种标签存放数据。例如data标签代表数据orderno标签代表订单编号字段。 ?xml version1.0 encodingutf-8? dataorderno123456789/ordernoordertype2/ordertypeticketno666555/ticketno /data手动拼接 这是最容易想到的方式因为格式相对固定字段不多的请求下直接手动拼接就好了。 jackson框架 jackson-dataformat-xml框架提供了bean转xml和xml转bean的能力并且使用简单省去了繁琐的拼接操作。 springboot集成jackson-dataformat-xml 1.引入依赖 需要注意如果项目已经引入过jackson依赖在引入jackson-dataformat-xml依赖的时候需要保持依赖版本一致可以通过在依赖管理搜jackson来查看版本。如果版本一致还是报错考虑使用更高版本。 dependencygroupIdcom.fasterxml.jackson.dataformat/groupIdartifactIdjackson-dataformat-xml/artifactIdversion2.11.3/version/dependency2.添加注解 如下设置标签名都是设置localName字段 JacksonXmlRootElement注解用来生成参数外一层的标签也就是data标签只有当对象是根对象的时候才生效也就是最外层对象如果作为某个对象的属性则不生效。 JacksonXmlProperty注解用来生成具体参数的标签如payorderno字段会根据注解配置生成ticketno标签如果标签名和字段名一致可省略。如下orderno、ordertype都因为字段名和标签名一致可省略该注解。 注意如果标签名首字母是大写的在定义字段的时候就必须用JacksonXmlProperty注解指定。 如果内部是其他对象的引用也把它当成一个字段即可通过加JacksonXmlProperty注解来设置对象引用的标签名。 如果内部是一个list则需要加JacksonXmlElementWrapper注解来设置list标签的名称。JacksonXmlProperty来设置list内部对象的标签。 //内部对象本例子中insideData不生效 Data JacksonXmlRootElement(localName insideData) public class InsideBO {private String level; }//list存的对象listData也不生效 Data JacksonXmlRootElement(localName listData) public class ListBO {private String name;private Integer age; }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 java.util.List; Data JacksonXmlRootElement(localName data) public class TestBO {private String orderno;private Integer ordertype;JacksonXmlProperty(localName ticketno)private String payorderno;/*** 指定该对象引用的标签为testInsideBO3,把它也当成普通字段即可*/private InsideBO testInsideBO1;JacksonXmlProperty(localName testInsideBO3)private InsideBO testInsideBO2;/*** 不指定list和内部对象的标签默认都使用字段名*/private ListListBO listBOS1;/*** 指定list的标签为listBOS3内部对象的标签为listdetail*/JacksonXmlElementWrapper(localName listBOS3)JacksonXmlProperty(localName listdetail)private ListListBO listBOS2;} 3.转换 bean转xml import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.springframework.boot.test.context.SpringBootTest; import java.util.ArrayList; import java.util.List;SpringBootTest public class Test {org.junit.jupiter.api.Testpublic void test(){TestBO testBOnew TestBO();testBO.setOrderno(123456789);testBO.setOrdertype(2);testBO.setPayorderno(666555);ListListBO listnew ArrayList();ListBO listBOnew ListBO();listBO.setName(list);listBO.setAge(18);list.add(listBO);testBO.setListBOS1(list);testBO.setListBOS2(list);InsideBO insideBOnew InsideBO();insideBO.setLevel(100);testBO.setTestInsideBO1(insideBO);testBO.setTestInsideBO2(insideBO);XmlMapper xmlMappernew XmlMapper();String s1 null;try {s1 xmlMapper.writeValueAsString(testBO);} catch (JsonProcessingException e) {e.printStackTrace();}System.out.println(s1);} }打印结果如下 data orderno123456789/orderno ordertype2/ordertype ticketno666555/ticketno testInsideBO1level100/level /testInsideBO1 testInsideBO3level100/level /testInsideBO3 listBOS1listBOS1namelist/nameage18/age/listBOS1 /listBOS1listBOS3listdetailnamelist/nameage18/age/listdetail /listBOS3 /data 只需要再拼接一个xml的头就可以用来发请求了。 xml转bean 以上面转换得到的xml结果作为本次转换的入参。加上xml头更符合响应的xml import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.springframework.boot.test.context.SpringBootTest; import java.util.ArrayList; import java.util.List;SpringBootTest public class Test {org.junit.jupiter.api.Testpublic void test(){TestBO testBOnew TestBO();testBO.setOrderno(123456789);testBO.setOrdertype(2);testBO.setPayorderno(666555);ListListBO listnew ArrayList();ListBO listBOnew ListBO();listBO.setName(list);listBO.setAge(18);list.add(listBO);testBO.setListBOS1(list);testBO.setListBOS2(list);InsideBO insideBOnew InsideBO();insideBO.setLevel(100);testBO.setTestInsideBO1(insideBO);testBO.setTestInsideBO2(insideBO);XmlMapper xmlMappernew XmlMapper();String s1 null;try {s1 xmlMapper.writeValueAsString(testBO);} catch (JsonProcessingException e) {e.printStackTrace();}System.out.println(s1);s1?xml version\1.0\ encoding\gb2312\?s1;System.out.println(s1);TestBO testBO1 null;try {testBO1 xmlMapper.readValue(s1, TestBO.class);} catch (JsonProcessingException e) {e.printStackTrace();}System.out.println(testBO1);} } 打印结果如下 成功将xml参数转换成bean. TestBO(orderno123456789,ordertype2, payorderno666555,testInsideBO1InsideBO(level100),testInsideBO2InsideBO(level100),listBOS1[ListBO(namelist, age18)],listBOS2[ListBO(namelist, age18)])
http://www.hkea.cn/news/14427112/

相关文章:

  • 青岛手机网站设计公司深圳宝安区属于什么档次
  • 为何只有建设银行网站打不开新手怎么做电商
  • 网站推广分为哪几个部分做网站哪种语言好
  • 爱网站关键词挖掘wordpress 最大上传文件
  • 浙江大学陈越做的刷题网站百度seo排名优化软件
  • 西安汇友网站建设网络版微信
  • 沈阳 商城 网站 开发厦门海投工程建设有限公司网站
  • cms 企业网站管理系统怎么在html链接wordpress
  • 如何制作百度网站地图虚拟主机可以建设网站吗
  • 赢了网站怎么做的商标设计图
  • 网站seo排名公司成都小程序建设乚成都柚米
  • 焦作企业网站建设网站建设好还需要续费吗
  • 站群子网站开发网站建设昆明网络公司
  • 广东平台网站建设哪家好网站怎样改域名
  • 广州网站制作网站武进网站建设好么
  • 安徽省建设厅网站phpstudy配置wordpress
  • 旅游网网站的设计如何设计一个网页系统
  • 网站建设 类型天津建设网站的公司哪家好
  • 网站数据不变重新安装wordpress海拉尔网站建设平台
  • php网站游客试用怎么做建筑项目查询平台
  • 杭州网站优化方案7一12岁手工玩具小制作
  • 用vs做html网站网络管理中心
  • 怎么用自己笔记本建设网站电商需要投资多少钱
  • 网页设计与网站建设在线第二章wordpress路由规则
  • 怎样把网站做的更好门户网站建设公司案例
  • 网站的基本知识软件下载app排行榜
  • 南城仿做网站网络广告一般是怎么收费
  • 网站建设与管理的现状百度宣传推广
  • 上海企业网站制作电话免费
  • 承接做网站wordpress前缀