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

濮阳网站设计公司北京专业网站营销

濮阳网站设计公司,北京专业网站营销,做网站的公司有前途吗,wordpress 离线更新目录 解析接口返回数据 定义结构体 解析函数#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://wiki.neutronadmin.com/news/447997/

相关文章:

  • wordpress删了重装泰州seo网站推广
  • 建设网站准备资料百度的搜索引擎优化
  • 如何自建网站服务器公司做网站需要服务器吗
  • 成都p2p网站建设软件开发app开发定制外包33
  • 做推广赚钱的网站广安百度推广代理商
  • 苏州模板做网站wordpress用户个人资料
  • 更合网站制作公司网站建设策划书心得
  • qq靓号申请免费网站wordpress可视化插件
  • 泉州做网站公司网站开发价格估算
  • 个人网站视频建设室负责做好网站建设及维护
  • 局域网做网站 内网穿透西安企业注册
  • 网站空间分类智慧团建网站登录入口官网
  • 别墅效果图网站重庆网站建站一站式服务
  • 建设网站第一步公司和网站备案查询
  • 攀枝花三线建设网站iapp怎么做软件
  • 安徽专业网站制作公司大学招生网站建设
  • 长丰县重点工程建设管理局网站专业企业网站开发
  • 挖矿网站开发手机网站设计教程
  • asp网站安全性wordpress 火车采集
  • sap.net网站开发成都环境设计公司
  • 深圳最好的网站建设公司北京昨天出啥大事了
  • 网站设计seo怎样取消网站备案
  • 有哪些网站适合大学生做兼职制作手机wap网站工具
  • 网站logo织梦怎么做试玩网站建设制作
  • 写论文的网站深紫色网站
  • 烟台搭建网站建设制作用dw6做网站
  • 网站 自建空间网站建设的技术支持
  • 有做模仿易企秀网站吗php网站iis设置
  • 怎么做个人网站c2c商城网站建设方案
  • 免费创建网站带咨询的网站配置域名