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

永久免费的网站空间地方网站

永久免费的网站空间,地方网站,微信 app 微网站 整合,mc做图的网站关于 JSON 数据 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也 易于机器解析和生成。RESTfull Api 接口中返回的数据都是 json 数据。 Json 的基本格式如下#xff1a; { a: Hello, b: { a: Hello, b: World } 稍微复杂点的 JSON   结构体与 JSON 序列化 注意一个点结构体内的私有属性不能被json包访问如果结构体内部的属性都要就行转换需要全部为公有属性开头字符大写 比如我们 Golang 要给 App 或者小程序提供 Api 接口数据这个时候就需要涉及到结构体和 Json 之间的相互转换。 Golang JSON 序列化 是指把结构体数据转化成 JSON 格式的字符串 结构体 ---- JSON格式字符串 Golang JSON 的反序列化 是指把 JSON 数据转化成 Golang 中的结构体对象。 JSON格式字符串 ---- 结构体 Golang 中 的 序 列 化 和 反 序 列 化 主 要 通 过 encoding/json 包 中 的 json.Marshal() 和json.Unmarshal()方法实现 结构体对象转化成 Json 字符串 package mainimport (encoding/jsonfmt )type Person struct{Name stringGender stringAge int }func main() {var p1 Person{Name: 奥特曼,Gender: 男,Age: 17,}fmt.Printf(%#v\n,p1)jsonByte,_ : json.Marshal(p1)jsonStr : string(jsonByte)fmt.Printf(%#v, jsonStr)}错误案例如下 package mainimport (encoding/jsonfmt )type Person struct{Name stringGender stringage int }func main() {var p1 Person{Name: 奥特曼,Gender: 男,age: 17,}fmt.Printf(%#v\n,p1)jsonByte,_ : json.Marshal(p1)jsonStr : string(jsonByte)fmt.Printf(%#v, jsonStr)}Json 字符串转换成结构体对象 返回一个err 如果err为空转换成功 err非空转换失败 package mainimport (encoding/jsonfmt )type Person struct{Name stringGender stringage int }func main() {var str {Name:奥特曼,Gender:男,Age:17}var p2 Personerr : json.Unmarshal([]byte(str), p2)if err ! nil { fmt.Println(err)}fmt.Printf(%#v\n, p2)fmt.Println(p2.Name)}结构体标签 Tag Tag 是结构体的元信息可以在运行的时候通过反射的机制读取出来。 Tag 在结构体字段的后方定义由一对反引号包裹起来具体的格式如下 key1:value1 key2:value2 结构体 tag 由一个或多个键值对组成。键与值使用冒号分隔值用双引号括起来。 同一个结构体字段可以设置多个键值对 tag不同的键值对之间使用空格分隔。 注意事项 为结构体编写 Tag 时必须严格遵守键值对的规则。 结构体标签的解析代码的容错能力很差一旦格式写错编译和运行时都不会提示任何错误通过反射也无法正确取值。 例如不要在 key 和 value 之间添加空格。 通过指定 tag 实现 json 序列化该字段时的 key 嵌套结构体和 JSON 序列化反序列化  package mainimport (encoding/jsonfmt ) type Person struct{Name string json:nameGender string json:genderAge int json:age }type Group struct{Intrasting stringPerson []Person } func main() {h : Group{Intrasting: 绘画,Person: make([]Person, 0),}for i : 17; i 20; i {p : Person{Name :fmt.Sprintf(编号%v, i), //字符串类型Gender:男,Age : i1,}h.Person append(h.Person, p) //将P里的东西添加到实例化的h后的切片内}// fmt.Println(c)strByte, err : json.Marshal(h)if err ! nil {fmt.Println(err)} else {strJson : string(strByte)fmt.Println(strJson)} }逆序退回 package mainimport (encoding/jsonfmt )type Person struct{Name string json:nameGender string json:genderAge int json:age }type Group struct{Intrasting stringPerson []Person }func main() {jsonStr : {Intrasting:绘画,Person:[{name:编号17,gender:男,age:18},{name:编号18,gender:男,age:19},{name:编号19,gender:男,age:20}]}var h Group{}err : json.Unmarshal([]byte(jsonStr), h)if err ! nil {fmt.Println(err)} else {fmt.Printf(%#v\n, h)fmt.Printf(%v, h.Intrasting)} }
http://www.hkea.cn/news/14511385/

相关文章:

  • 网络托管运营资深seo顾问
  • 榆林网络公司建设网站前端网页模板下载
  • 哪里免费做网站wordpress轮播代码
  • 大连做网站电话青岛网站推广企业
  • 网站建设有哪些工作需需要筹备网站 建设 成品
  • 学习网页设计网站制作为女朋友做的表白网站
  • 手机端网站html好看的模板江苏高校品牌专业建设工程网站
  • 自助企业建站模版福建省建筑施工企业信用评价系统
  • 弹窗网站制作器上海建设工程管理网站
  • 网站模版调用标签教程西安免费公司网站制作
  • 做地方网站微信营销方案
  • 响应式网站成本wordpress赞助
  • 北票市建设工程安全管理站网站优惠券网站怎样做
  • 简单的j网站建设方案书动易网站后台修改栏目的字
  • 泉州公司网站建设wordpress设置标题
  • 北京企业网站建站哪家好乐山公司网络建设
  • php网站开发就业前景中国航发网上商城官网
  • 广州企业网站建设哪家好珠海网站关键词推广
  • 涿州网站建设有限公司专做排版网站
  • 网站推广软文甄选天天软文广州市公司网站建设品牌
  • 专业做财经直播网站有哪些辽宁身营商环境建设局网站
  • 山东公司网站推广优化电子商务的网站的建设内容
  • 怎么增加网站访问量商丘手机网站制作
  • 国外网站排行榜园区网络规划与设计
  • 宜城市城乡建设局网站备案抖音代运营收费详细价格
  • 自己做网站需要备案么平面设计图片创意手绘
  • 高端网站建设公司哪家公司好WordPress仿百度贴吧主题
  • 网站设计分工找做帽子的工厂网站
  • php做用户登录网站网站开发的安全性主要考虑哪些
  • 菏泽网站建设服务网站建设秋实