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

萍乡网站优化手机开发者模式在哪里找

萍乡网站优化,手机开发者模式在哪里找,东莞外贸优化公司,西安网站推广都是怎么做的目录 前言 解析到结构体 json数据与struct字段是如何相匹配的呢#xff1f; 解析到interface Go类型和JSON类型 实例代码 simpleJson 总结 资料获取方法 前言 上一次我们一起学习了如何解析接口返回的XML数据#xff0c;这一次我们一起来学习JSON的解析方法。 JSO…目录 前言 解析到结构体 json数据与struct字段是如何相匹配的呢 解析到interface Go类型和JSON类型 实例代码 simpleJson 总结 资料获取方法 前言 上一次我们一起学习了如何解析接口返回的XML数据这一次我们一起来学习JSON的解析方法。 JSONJavascript Object Notation是一种轻量级的数据交换语言以文字为基础具有自我描述性且易于让人阅读。XML是一个完整的标记语言而JSON不是。JSON比XML更小、更快更易解析因此其被广泛应用于网络数据传输领域。 Go语言的标准库已经非常好的支持了JSON可以很容易的对JSON数据进行编、解码的工作。下面我们通过一些实例一起来学习。 首先我们假设我们的接口返回的JSON数据如下 { code: 00,message: SUCCESS,describe: 成功,resultInfo: { uniqueNumber: 201808161133401673324075025000035 } }解析到结构体 这种方式与xml解析的方法基本没有什么区别我们首先要定义一个结构体然后调用json.Unmarshal把数据解析到结构体 func StructMethod() {resp : {code: 00,message: SUCCESS,describe: 成功,resultInfo: { uniqueNumber: 201808161133401673324075025000035 } }type JsonResp struct {Code int json:codeMessage string json:messageDescribe string json:describeResultInfo map[string]string json:resultInfo}var smsresp JsonResptemp : []byte(resp)errs : json.Unmarshal(temp, smsresp)if errs ! nil {return}fmt.Println(smsresp.Code)fmt.Println(smsresp.Describe)fmt.Println(smsresp.Message)fmt.Println(smsresp.ResultInfo[uniqueNumber]) }json数据与struct字段是如何相匹配的呢 可能有的小伙伴和我一样好奇在解析的时候json数据与struct字段是如何相匹配的呢例如JSON的key是code那么怎么找对应的字段呢 首先查找tag含有code的可导出的struct字段(首字母大写)其次查找字段名是code的导出字段最后查找类似Code或者COde这样的除了首字母之外其他大小写不敏感的导出字段 注意 能够被赋值的字段必须是可导出字段(即首字母大写。同时JSON解析的时候只会解析能找得到的字段找不到的字段会被忽略。我们在实际使用的过程中一定要随时警惕这一点。 其实与这个潜在的坑相比它的优势非常明显当你接收到一个很大的JSON数据结构而你却只想获取其中的部分数据的时候你只需将你想要的数据对应的字段名大写即可轻松解决。 解析到interface 上面那种解析方式是在我们知晓被解析的JSON数据的结构的前提下采取的方案如果我们不知道被解析的数据的格式又应该如何来解析呢 Go类型和JSON类型 我们知道interface{}可以用来存储任意数据类型的对象这种数据结构正好用于存储解析的未知结构的json数据的结果。JSON包中采用map[string]interface{}和[]interface{}结构来存储任意的JSON对象和数组。Go类型和JSON类型的对应关系如下 类型JSON类型boolJSON booleans,float64JSON numbers,stringJSON strings,nilJSON null. 实例代码 // InterfaceMethod 方式 func InterfaceMethod() {resp : {code: 00,message: SUCCESS,describe: 成功,resultInfo: {uniqueNumber: 201808161133401673324075025000035} }var x interface{}_ json.Unmarshal([]byte(resp), x)m : x.(map[string]interface{})for k, v : range m {switch vv : v.(type) {case string:fmt.Println(k, is string, vv)case int:fmt.Println(k, is int, vv)case float64:fmt.Println(k, is float64, vv)case []interface{}:fmt.Println(k, is an array:)for i, u : range vv {fmt.Println(i, u)}case map[string]interface{}:fmt.Println(k, is an map[string]string:)for i, u : range vv {fmt.Println(i, u)}default:fmt.Println(k, is of a type didnt handle)}} }simpleJson 上面两种方式其实已经能应付我们一般的工作了但是单纯就解析数据而言这里先买个关子其实还有一种更简单的方式那就是第三方库github.com/bitly/go-simplejson使用方法如下 func SimplejsonMethod() {resp : {code: 00,message: SUCCESS,describe: 成功,resultInfo: { uniqueNumber: 201808161133401673324075025000035 } }js, errs : NewJson([]byte(resp))if errs ! nil {return}discount : js.Get(resultInfo).Get(uniqueNumber)strcode, _ : js.Get(code).String()intcode, _ : js.Get(code).Int()path : js.GetPath(resultInfo, uniqueNumber)fmt.Println(discount)fmt.Println(strcode)fmt.Println(intcode)fmt.Println(path) }运行输出 bingoMac unpackData$ go run JSONparse.go {201808161133401673324075025000035} 00 0 {201808161133401673324075025000035}GetPath方法是Get的人精简版使用结尾调用的方法可以吧输出的结果转化为指定的类型string 00 转换为 0 。 那么多个方法的调用怎么完成数据传递的呢输出结果的符号其实已经暴露了它的身份对就是指针这个库每个方法接收和返回的都是指针数据。 总结 json 解析 到structinterface{}与type assert的配合使用simplejson学习一门语言是一个慢慢熟悉的过程初始是不易使用完成度太高的轮子 资料获取方法 【留言777】 各位想获取源码等教程资料的朋友请点赞 评论 收藏三连 三连之后我会在评论区挨个私信发给你们~
http://www.w-s-a.com/news/517233/

相关文章:

  • 如何编写网站建设销售的心得网站的权限管理怎么做
  • 网站业务员好做吗无忧网站优化
  • 网站随机代码网站建设费 账务处理
  • 商洛网站建设哪家好网站建设 织梦者
  • 怎么创建收费网站宁夏住房和城乡建设部网站
  • 怎么确认网站是什么语言做的用php和mysql做网站
  • 安徽做网站的公司有哪些星子网络公司
  • 肥西县重点工程建设管理局网站wordpress界面菜单怎么弄
  • 宁夏网站开发设计说明书wordpress主题背景图片
  • 同一个阿里云可以做两个网站吗织梦 帝国 学校网站
  • 城阳网站建设培训网站后台怎么上传文件
  • 重庆茂尔建设集团有限公司网站网页制作教程软件
  • 金湖建设工程质量监督网站高端网站建设公司哪里济南兴田德润实惠吗
  • 站酷设计网站官网入口文字设计seo网站推广工具
  • 专业移动网站建设网站建设软件dw
  • 摄影网站设计思想视觉传达毕业设计作品网站
  • 需要优化的网站有哪些设计装修app
  • 数据型网站建设东莞好的网站国外站建设价格
  • 网络营销方法有哪些举例seo应用领域有哪些
  • 建设银行官方网站官网做网站的专业叫什么
  • 矿区网站建设濮阳做网站的公司有哪些
  • 有什么网站可以自己做书甘肃建设厅网站首页
  • 门户网站建设哪专业怎么把自己做的网站登录到网上
  • 如何做网站小编餐饮业手机php网站
  • 备案 网站商城网站设计公司排名
  • 汕头做网站优化公司seo软件简单易排名稳定
  • 如何做众筹网站微网站设计平台
  • 富平做网站十堰优化seo
  • 免费网站空间可访问wordpress弹窗注册代码
  • 东莞网站建设教程南京做代账会计在哪个网站上找