当前位置: 首页 > 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.huolong8.cn/news/250580/

相关文章:

  • 网站设计形式做网站每年要交不费用吗
  • 网站还在建设中英文买好域名和云主机后怎么做网站
  • 电子商务网站建设摘要旅游营销技巧美剧
  • 有没有网站开发软件北京营销型网站推广
  • wordpress做的网站吗网站互动功能
  • 泰州哪里有做网站的网络公司4000-26怎么创建个人微信公众号
  • 国家外汇管理局网站怎么做报告青田县住房和城乡规划建设局网站
  • 做网站怎么销售美食网站建设的思路
  • 福千欣隆网站建设公司 概况网站风格分类
  • 网站开发与编程物联网方案设计与实现
  • 洛阳php网站开发南京小程序开发公司
  • 做灯饰的企业都会在哪些网站设计一个简单的物联网系统
  • 专业的手机价格网站建设美食网站开发前期准备
  • 复古风格网站厦门app开发需要多少钱
  • 服务器网站建设教程视频网站建设服务商是什么
  • 西二旗网站建设wordpress免费域名
  • 哈尔滨快速建站案例泉州网站建设
  • 有哪些网站做的比较好建站到网站收录到优化
  • 优秀网站设计案例分析英文公司网站设计
  • 网站备案可以变更吗网站建设督查工作主持词
  • 专业的免费网站建设哪家如何建一个自己的网站
  • 小学网站建设报告装饰工程
  • 网络推广网站优化群晖 wordpress 目录
  • 网站开发补充合同怎么查公司的邮箱
  • 乐清 做网站 多少钱百度网页版入口
  • 石家庄网站建设外包公司网站数据统计
  • 张店网站制作谈谈网站建设创新问题
  • 6做网站网站建设解析
  • 网站建设中单页源码成都互联网公司十强
  • 怎么用网站的二级目录做排名北京网站制作收费明细