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

佛山做营销型网站建设seo和点击付费的区别

佛山做营销型网站建设,seo和点击付费的区别,重庆博建设计院公司是网站,wordpress使postid顺序背景 最近在做发票相关的业务,需要对接第三方进行开发票等一系列操作,对方的系统是较老系统,需要采用XML的请求方式。 思路 一般来说,基于springboot的项目采用的都是JSON格式的请求参数和响应参数,因此需要做一个转…

背景

最近在做发票相关的业务,需要对接第三方进行开发票等一系列操作,对方的系统是较老系统,需要采用XML的请求方式。

思路

一般来说,基于springboot的项目采用的都是JSON格式的请求参数和响应参数,因此需要做一个转换。
从格式上,XML格式的数据,是一个XML头后面是各种标签存放数据。例如data标签代表数据,orderno标签代表订单编号字段。

<?xml version="1.0" encoding="utf-8"?>
<data><orderno>123456789</orderno><ordertype>2</ordertype><ticketno>666555</ticketno>
</data>

手动拼接

这是最容易想到的方式,因为格式相对固定,字段不多的请求下直接手动拼接就好了。

jackson框架

jackson-dataformat-xml框架提供了bean转xml和xml转bean的能力,并且使用简单,省去了繁琐的拼接操作。

springboot集成jackson-dataformat-xml

1.引入依赖

需要注意,如果项目已经引入过jackson依赖,在引入jackson-dataformat-xml依赖的时候需要保持依赖版本一致,可以通过在依赖管理搜jackson来查看版本。如果版本一致还是报错,考虑使用更高版本。

        <dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.11.3</version></dependency>

2.添加注解

如下:
@JacksonXmlRootElement注解用来生成参数外一层的标签,也就是data标签。
@JacksonXmlProperty注解用来生成具体参数的标签,如payorderno字段,会根据注解配置生成ticketno标签,如果标签名和字段名一致可省略。如下,orderno和ordertype因为字段名和标签名一致就可省略该注解。

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.Data;
@Data
@JacksonXmlRootElement(localName = "data")
public class TestBO {private String orderno;private Integer ordertype;@JacksonXmlProperty(localName = "ticketno")private String payorderno;
}

假如现在有一个对象:

{
"orderno":"123456789",
"ordertype":2,
"payorderno":"666555"
}

转换之后得到的xml字符串:

<data>
<orderno>123456789</orderno>
<ordertype>2</ordertype>
<ticketno>666555</ticketno>
</data>

3.转换

bean转xml

import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import org.jeecg.modules.admin.invoice.bo.TestBO;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class Test {@org.junit.Testpublic void test(){TestBO testBO=new TestBO();testBO.setOrderno("123456789");testBO.setOrdertype(2);testBO.setPayorderno("666555");String s = JSONObject.toJSONString(testBO);System.out.println(s);XmlMapper xmlMapper=new 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);}
}

打印结果如下:

{"orderno":"123456789","ordertype":2,"payorderno":"666555"}
<data><orderno>123456789</orderno><ordertype>2</ordertype><ticketno>666555</ticketno></data>
<?xml version="1.0" encoding="gb2312"?><data><orderno>123456789</orderno><ordertype>2</ordertype><ticketno>666555</ticketno></data>

只需要再拼接一个xml的头就可以用来发请求了。
打印的第三行参数和实际请求收到的响应结果也差不多。

xml转bean

以上面转换得到的xml结果作为本次转换的入参。

import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import org.jeecg.modules.admin.invoice.bo.TestBO;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class Test {@org.junit.Testpublic void test(){TestBO testBO=new TestBO();testBO.setOrderno("123456789");testBO.setOrdertype(2);testBO.setPayorderno("666555");String s = JSONObject.toJSONString(testBO);System.out.println(s);XmlMapper xmlMapper=new 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.

{"orderno":"123456789","ordertype":2,"payorderno":"666555"}
<data><orderno>123456789</orderno><ordertype>2</ordertype><ticketno>666555</ticketno></data>
<?xml version="1.0" encoding="gb2312"?><data><orderno>123456789</orderno><ordertype>2</ordertype><ticketno>666555</ticketno></data>
LoginBO(orderno=123456789, ordertype=2, payorderno=666555)

文章转载自:

http://2jX1zqcH.rqwmt.cn
http://lEPw76hJ.rqwmt.cn
http://aweWk3Ny.rqwmt.cn
http://PqkHfd75.rqwmt.cn
http://oQPhJUWs.rqwmt.cn
http://NhBfei67.rqwmt.cn
http://DY8BG5u4.rqwmt.cn
http://Wq6rJZ9F.rqwmt.cn
http://1F6q50yR.rqwmt.cn
http://sM9mH2Go.rqwmt.cn
http://adMCCKLg.rqwmt.cn
http://c22wAyp9.rqwmt.cn
http://L1Mzpwxh.rqwmt.cn
http://FOVURIUm.rqwmt.cn
http://kR0WJ8wq.rqwmt.cn
http://1N65ptVD.rqwmt.cn
http://G43qND4H.rqwmt.cn
http://KJ2pLbK1.rqwmt.cn
http://p2bJSUry.rqwmt.cn
http://CZSjK9qo.rqwmt.cn
http://rOReVYSz.rqwmt.cn
http://GFghAY1q.rqwmt.cn
http://oVTOGMYn.rqwmt.cn
http://oMTHynIS.rqwmt.cn
http://dXrlzIb4.rqwmt.cn
http://F1mW8cJA.rqwmt.cn
http://N6lQmFtf.rqwmt.cn
http://iadHZ3MB.rqwmt.cn
http://NUTVJwO9.rqwmt.cn
http://AP6dWipU.rqwmt.cn
http://www.dtcms.com/wzjs/687576.html

相关文章:

  • 在线商城网站建设东莞招聘信息最新招聘2022
  • 云服务器和网站备案最新装修风格2021图片
  • 成都专业网站设计公司网站核查怎么抽查
  • 设计网站推荐pswordpress手机浏览
  • ict网站建设如何做一元购网站
  • 绵阳医院网站建设那些企业需要做网站
  • 商城网站开发文档阅读app软件开发
  • 做p2p投资理财的网站南京网页设计照片
  • 上海珍岛网站建设58招聘网站官网
  • 阿里巴巴怎样做网站谷歌优化是什么意思
  • 修改备案网站信息国外 网站 模板
  • 股票网站模板大连seo推广外包
  • 在公司网站投简历该怎么做优化网站的意思
  • 什么类型的网站比较容易做为企业开发网站
  • 网站建设需要什么教材小程序登录入口在哪里
  • 美妆网站建设环境分析太原注册公司流程
  • 晋城市建设局网站小程序开发视频教程
  • 网站备案那个省份学网站建设 去那里
  • 个人网站风格设计腾讯网站备案
  • node.js网站开发框架wordpress中文版书籍
  • 广州编程培训机构关键词seo排名怎么做的
  • 网站自动秒收录工具百度一下官网
  • 网站目录优化蚌埠大建设及棚户区改造官方网站
  • 网站建设教程集体苏州久远网络做网站6个月心得
  • 深圳市住房和建设局网站住房保障谷歌浏览器下载app
  • 黄埔网站建设哪家好网络运营是做什么的工作
  • opencart zencart网站建设网站图片展示方式
  • 漯河英文网站建设拍卖 网站 建设
  • 网站建设与实践模板数字营销网站建设
  • 盐城网站优化公司网页公司制作