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

网站制作的软件做网站页面对PS切图

网站制作的软件,做网站页面对PS切图,做dw和ps的网站教学,优秀企业宣传册样本目录 解析接口返回数据 定义结构体 解析函数#xff1a; 测试 优化 资料获取方法 上一篇我们学习了怎么发送各种数据类型的http请求#xff0c;这一篇我们来介绍怎么来解析接口返回的XML的数据。 解析接口返回数据 定义结构体 假设我们现在有一个接口返回的数据resp如…目录 解析接口返回数据 定义结构体 解析函数 测试 优化 资料获取方法 上一篇我们学习了怎么发送各种数据类型的http请求这一篇我们来介绍怎么来解析接口返回的XML的数据。 解析接口返回数据 定义结构体 假设我们现在有一个接口返回的数据resp如下 ?xml version1.0 encodingutf-8? ResponseWithResponseInfocode00/codemessageSUCCESS/messagedescribe成功/describeresultInfouniqueNumber201808161133401673324075025000035/uniqueNumber/resultInfo /ResponseWithResponseInfo要解析这个数据首先我们要定义一个与之树状结构一致的结构体 type XMLresp struct {ResponseWithResponseInfo xml.Name xml:ResponseWithResponseInfoCode int xml:codeMessage string xml:messageDescribe string xml:describeResultInfo struct {XMLName xml.Name xml:resultInfoUniqueNumber string xml:uniqueNumber} }这里要注意xml.Name 这个tag它表示后面的数据的父元素是什么如果没有填写这个信息在数据解析的时候可能会获取不到数据。 解析函数 接下来我们就可以使用xml.Unmarshal方法将字符串中的数据解析出来了: // XMLUnpack xml数据解析 func XMLUnpack(respbody string) (Prase []interface{}, errs error) {temp : []byte(respbody)v : XMLresp{}errs xml.Unmarshal(temp, v)Prase []interface{}{v.Code, v.Message, v.Describe, v.ResultInfo.UniqueNumber}if errs ! nil {return}return }测试 func main() {data, _ : XMLUnpack(resp)fmt.Println(data) }输出 bingoMac unpackData$ go run paraseXML.go [0 SUCCESS 成功 201808161133401673324075025000035]优化 大家可能注意到了我们在定义XMLUnpack这个函数的时候用于解析这个数据的结构体是固定的也就是说这个函数只能解析同一个树桩结构的数据每一个不同的接口我们都需要写一个与之对应的函数。这样我们可能会在后续面临一个问题如果我们的接口多了取怎样的函数名可能都会是困扰我们的一个大问题而且会变得越来越不容易维护。 那么有没有办法能解决这个问题呢答案当然是有的下面我们一起来解决这个问题。 不知道大家还记不记得我么之前一起学习过的method语法它的优点是可以让不同作用的函数使用同一个函数名称属性可以完成面向对象语言特有的继承和重写操作如果忘记了可以看看我之前发布的学习笔记。 我们这次的优化其实就是method语法的一次实际应用下面让我们来看一下具体的实现。 // XMLUnpack 短信网关xml返回结果解析 func (smsresp *XMLresp) XMLUnpack(respbody string) (Prase []interface{}, errs error) {temp : []byte(respbody)v : SmsXMLresp{}errs xml.Unmarshal(temp, v)Prase []interface{}{v.Code, v.Message, v.Describe, v.ResultInfo.UniqueNumber}if errs ! nil {return}return }现在的这个函数和之前的区别就在于我们指定了可以调用这个函数的数据类型为*XMLresp只有这个类型的数据能够调用这个方法同样的我们的调用方法也发生了一些小改变我们需要先定义一个存储这个结构体的变量然后再调用这个变量的方法当然这个变量在后续解析其他相同类型的数据时是可以无限次复用的。参考代码 func main() {var p XMLrespdata, _ : p.XMLUnpack(resp)fmt.Println(data) }文中可能存在描述不正确欢迎大神们指正补充 资料获取方法 【留言777】 各位想获取源码等教程资料的朋友请点赞 评论 收藏三连 三连之后我会在评论区挨个私信发给你们~
http://www.sadfv.cn/news/250580/

相关文章:

  • 纪检网站建设动态主题广州注册公司在哪个网站
  • 网站建设定位wordpress换域名媒体库不显示图片
  • 怎么做北京赛网站怎样做网站跳转
  • 常用个人网站是什么网站用 做有什么好处
  • 最新网站模板免费下载网站建设实验周志与总结
  • 哪建设网站中国互联网公司排名2023
  • 微号网站开发开发网站公司价格
  • 网站模板带后台建立网站培训讲义
  • 数字展厅网站建设小公司做网站需要注意什么问题
  • 什么网站找厂做袜子wordpress卡慢
  • wordpress演示站教程全国文明城市创建标语
  • 宁陵网站建设wordpress删除示例页面
  • 网站后台建设公司如何利用阿里云做网站
  • 那些开店的网站是自己做的吗网站建设丶金手指花总14
  • 沈阳建设银行网站天门市城市建设管理局网站
  • 黄岗住房和城乡建设厅官方网站移动网站如何优化排名
  • CQ网站建设搜索网站入口
  • 网页设计与网站建设 设计题合肥公司注册地址
  • 网站建设和网络推广外包如何整合wordpress博客
  • 奉贤做网站制作wordpress添加浮动
  • 做网站需要学那几个软件用表格做的网站
  • 网站开发 保证书wordpress 缩略图质量
  • 新开传奇网站韩版电子商务网站开发与管理实验报告
  • 互联网金融网站建设怎么建设手机端网站
  • 网站备案邮寄资料网页设计与制作课程建设规划
  • 做网站建网站公司哪个网站可以做专业兼职
  • 今天莱芜大事件新闻最新消息免费seo课程
  • 郴州58网站北京到安阳高铁时刻表查询
  • 海淀网站建设价格网络营销推广岗位有哪些
  • 京挑客网站建设网站建设分金手指排名二六