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

南昌网站建设是什么意思域名购买 便宜的域名

南昌网站建设是什么意思,域名购买 便宜的域名,淮安市汽车网站建设背景,公司有网站域名后如何建网站一个json字串,想要拿到其中的数据,就需要解析出来 一、适用于json数据的结构已知的情况下 使用json.Unmarshal将json数据解析到结构体中 根据json字串数据的格式定义struct,用来保存解码后的值。这里首先定义了一个与要解析的数据结构一样的…

一个json字串,想要拿到其中的数据,就需要解析出来

一、适用于json数据的结构已知的情况下

使用json.Unmarshaljson数据解析到结构体中

根据json字串数据的格式定义struct,用来保存解码后的值。这里首先定义了一个与要解析的数据结构一样的结构体,然后通过json.Unmarshal进行解码,如果json数据很复杂,自定义的struct就跟着复杂。

package mainimport ("encoding/json""fmt"
)var jsonstr = `{"province":{"value":"110000","label":"北京市"},"city":{"value":"110100","label":"北京城区"},"district":{"value":"110115","label":"大兴区"}}`type JsonData struct {Province JsonData2 `json:"province"`City     JsonData2 `json:"city"`District JsonData2 `json:"district"`
}type JsonData2 struct {Value string `json:"value"`Label string `json:"label"`
}// json解码
func JsonDecode() {//json解码jsondata := JsonData{}_ = json.Unmarshal([]byte(jsonstr), &jsondata)fmt.Println(jsondata.Province.Label)fmt.Println(jsondata.City.Label)fmt.Println(jsondata.District.Label)
}

二、适用于json数据的结构未知的情况下

1、使用map

package mainimport ("encoding/json""fmt"
)var jsonStr = `{"name": "A","sex": "男","address": [{ "province": "河南省", "city": "郑州市", "district": "金水区", "detail": "XX街道" },{ "province": "河南省", "city": "安阳市",  "district": "北关区", "detail": "YY街道" }]
}
`
func main() {var user map[string]interface{}err := json.Unmarshal([]byte(jsonStr), &user)if err != nil {panic("解析失败")}fmt.Printf("名字:%s\n", user["name"].(string))fmt.Printf("性别:%s\n", user["sex"].(string))for i, address := range user["address"].([]interface{}) {addr := address.(map[string]interface{})fmt.Printf("地址%d:%s,%s,%s %s\n", i, addr["province"].(string), addr["city"].(string), addr["district"].(string), addr["detail"].(string))}
}

2、使用三方包

1、github.com/bitly/go-simplejson

package mainimport ("fmt""github.com/bitly/go-simplejson"
)var jsonStr := `{"name": "A","sex": "男","address": [{ "province": "河南省", "city": "郑州市", "district": "金水区", "detail": "XX街道" },{ "province": "河南省", "city": "安阳市",  "district": "北关区", "detail": "YY街道" }]}`func main() {// github.com/bitly/go-simplejsonjst, err := simplejson.NewJson(jsonStr)if err != nil {panic("解析失败")}name, _ := jst.Get("name").String()sex, _ := jst.Get("sex").String()fmt.Printf("名字:%s\n", name)fmt.Printf("性别:%s\n", sex)for i, v := range jst.Get("address").MustArray() {ads := v // v等同于jst.Get("address").GetIndex(i)province, _ := ads.Get("province").String()city, _ := ads.Get("city").String()district, _ := ads.Get("district").String()detail, _ := ads.Get("detail").String()fmt.Printf("地址%d:%s,%s,%s %s\n", i, province, city, district, detail)}
}

2、github.com/spf13/viper

1、要通过viper.SetConfigType("json")函数指定要解析数据的格式,否则即使viper.ReadConfig没有报错,解析后也没有返回结果

2、方法viper.Get(),viper.GetString(),viper.GetBool()等等可以方便获取键值,同时对于键值的类型也能很好的判断

package mainimport ("fmt""strings""github.com/spf13/viper"
)var jsonstr= `{"name": "tian","married": false,"address": {"city": "beijing","country": "China"}}`
func main() {// 指定配置的类型为jsonviper.SetConfigType("json")// 读取数据if err := viper.ReadConfig(strings.NewReader(jsonstr)); err != nil {fmt.Println(err)}fmt.Printf("数据的所有键值: %v\n", viper.AllKeys())fmt.Printf("解析后的数据:%v\n", viper.AllSettings())fmt.Printf("The name is %s and the country is %s\n", viper.Get("name"), viper.Get("address.country"))
}

3、github.com/thedevsaddam/gojsonq

查询name之后,调用了一次Reset()方法。因为jsonq在调用Find方法时,内部会记录当前的点,下一个查询会从上次记录的点开始

package mainimport ("fmt""github.com/thedevsaddam/gojsonq/v2"
)var jsonstr = `{"name": "sam","sex": false,"address": {"city": "北京","area": "中国"}}`
func main() {jst:= gojsonq.New().FromString(jsonstr)namestr := jst.Find("name").(string)jst.Reset()citystr := jst.Find("address.city")fmt.Printf("The name is %s and the city is %v", namestr, citystr)
}

http://www.yayakq.cn/news/828618/

相关文章:

  • 上海网站排名优化价格钱建网站
  • 做网站学好哪些软件上海集团有限公司
  • 宝安新桥h5网站建设步骤seo3立体构型
  • 佛山建设银行网站网站编辑转行做文案
  • 怎么做存储网站海洋牧场网站建设
  • 怎么做免费个人网站如何建立p2p网站
  • 徐州开发区中学网站重庆网站制作公司
  • 奢做品二手 哪个网站好wordpress页面布局插件
  • 物流门户网站源码网站后台管理功能
  • wordpress更改网站信息做网站一般什么配置
  • 做网站好的书抖音搜索关键词排名查询
  • 商城网站设计图用织梦做的网站好还是cms
  • 怎么用apache做网站门户网站案例
  • 洛阳市新区建设投资有限公司网站网站都有什么类型的
  • 企业网站建设的几种形式cpanel wordpress
  • 网站底部浮动代码安卓手机app开发教程
  • 国外商业网站自贸区网站建设
  • 百度网站管理建设项目环保竣工验收备案网站
  • 广东省住房和城乡建设厅官方网站公众号管理平台入口
  • 基于aws ec2免费实例进行网站建设电脑网站打不开是什么原因造成的
  • 左右结构网站温州网站建设制作设计公司
  • 保洁公司网站源码app自己怎么开发软件
  • 温州快速网站建设排名小型教育网站的开发与建设系统
  • 临沂建设公司网站怎么制作一个app应用
  • 上海网站建设联系电话wordpress 删除自豪
  • 国外做地铁设计的公司网站聊城做网站费用价格
  • 莆田哪里有学做网站的app开发公司怎么赚钱的
  • 学校网站建设措施网站网页优化怎么做
  • 网站排名优化技巧佛山seo技术
  • 中山市建设局网站窗口电话号码大庆网站优化