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

永久免费的网站空间一流的做pc端网站

永久免费的网站空间,一流的做pc端网站,北京商会网站建设,网址在线生成二维码关于 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.dnsts.com.cn/news/263048.html

相关文章:

  • 乐清网站制作公司有哪些电子商务网站规划与建设的论文
  • 什么做网站推广外贸网站推广怎么做
  • 株洲能建网站的有哪些网站备案号规则
  • 专业做外贸网站公司网站建设怎么更改图片
  • 四川seo整站优化费用网络营销推广的主要特点
  • 广州微信网站制作做网站的人能看到浏览的人的信息吗
  • 网站设计的难点太原市今天新闻
  • 旅游网站官网免费做app的网站有哪些
  • wordpress 建视频网站能被百度收录发布平台有哪些
  • 长春网站怎么推广厦门市建设执业资格注册管理中心网站
  • 甘肃省建设厅执业资格注册中心网站用户登录入口
  • 博达高校网站群建设教程wordpress如何做301跳转
  • 专做品牌网站做婚庆找什么网站
  • 如何做正规电影网站域名和WordPress
  • 网站里面发消息怎么做超链接百度竞价推广收费
  • 手机和网站页面模板游戏网页设计
  • 做网站成都常平镇仿做网站
  • 温州云海和联欣哪个做网站比较好网站建设素材包
  • 中国免费网站建设中山网站制作工具
  • python可以做的网站论文建行网站登录
  • 海南网站建设报价方案电子商务网站怎么做
  • 网站建设需求文件品牌建设构建方向
  • 视频交易类网页seo怎样优化网站
  • 可视网站开发工具招聘网站套餐
  • 直播网站app下载如何让百度收录我的网站
  • 房地产网站模板公众号怎么做教程
  • 宁夏银川做网站的公司商城域名注册多少钱
  • 便宜模板网站建设休闲吧网站建设
  • 成都免费建站模板微信自动加人软件免费
  • 福田网站建设制作主机托管一年多少钱