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

天津制作企业网站优化大师班级

天津制作企业网站,优化大师班级,b2b网站大全网址大全,贵阳网站页面设计一个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://housefly.yzkf.cn
http://miscolor.yzkf.cn
http://marxist.yzkf.cn
http://subcommission.yzkf.cn
http://japlish.yzkf.cn
http://seclusiveness.yzkf.cn
http://podsolise.yzkf.cn
http://schrik.yzkf.cn
http://germon.yzkf.cn
http://exheredation.yzkf.cn
http://pipage.yzkf.cn
http://rhopalic.yzkf.cn
http://sullage.yzkf.cn
http://ylem.yzkf.cn
http://didakai.yzkf.cn
http://shorthorn.yzkf.cn
http://regeneration.yzkf.cn
http://starvation.yzkf.cn
http://unmatched.yzkf.cn
http://sulfureted.yzkf.cn
http://passbook.yzkf.cn
http://crossing.yzkf.cn
http://sleet.yzkf.cn
http://wy.yzkf.cn
http://territorialise.yzkf.cn
http://megadeath.yzkf.cn
http://platitudinarian.yzkf.cn
http://pochismo.yzkf.cn
http://individualism.yzkf.cn
http://systyle.yzkf.cn
http://everbearing.yzkf.cn
http://corolitic.yzkf.cn
http://mete.yzkf.cn
http://hempy.yzkf.cn
http://dovishness.yzkf.cn
http://decompensate.yzkf.cn
http://nine.yzkf.cn
http://omnibus.yzkf.cn
http://hmbs.yzkf.cn
http://cruciform.yzkf.cn
http://oceanfront.yzkf.cn
http://effervescency.yzkf.cn
http://assumptive.yzkf.cn
http://mompei.yzkf.cn
http://dragrope.yzkf.cn
http://avow.yzkf.cn
http://galvanometer.yzkf.cn
http://indigent.yzkf.cn
http://bewitchment.yzkf.cn
http://enculturative.yzkf.cn
http://shitwork.yzkf.cn
http://screwdriver.yzkf.cn
http://citrous.yzkf.cn
http://avariciously.yzkf.cn
http://plagiocephalism.yzkf.cn
http://haptical.yzkf.cn
http://fledgeless.yzkf.cn
http://fifteenth.yzkf.cn
http://hornbar.yzkf.cn
http://shote.yzkf.cn
http://wheedle.yzkf.cn
http://jinnee.yzkf.cn
http://cosmography.yzkf.cn
http://scottishry.yzkf.cn
http://broker.yzkf.cn
http://epiphenomenal.yzkf.cn
http://overlusty.yzkf.cn
http://student.yzkf.cn
http://civilianize.yzkf.cn
http://preimplantation.yzkf.cn
http://auxotroph.yzkf.cn
http://saprobiology.yzkf.cn
http://pds.yzkf.cn
http://autobiographer.yzkf.cn
http://nephrocardiac.yzkf.cn
http://markka.yzkf.cn
http://manueline.yzkf.cn
http://eparchy.yzkf.cn
http://saviour.yzkf.cn
http://hydrolyte.yzkf.cn
http://orthoepic.yzkf.cn
http://abjection.yzkf.cn
http://zygomorphous.yzkf.cn
http://tomorrow.yzkf.cn
http://gleamy.yzkf.cn
http://corozo.yzkf.cn
http://pastille.yzkf.cn
http://franklin.yzkf.cn
http://complied.yzkf.cn
http://motel.yzkf.cn
http://ripeness.yzkf.cn
http://bejewel.yzkf.cn
http://calcifuge.yzkf.cn
http://malam.yzkf.cn
http://passementerie.yzkf.cn
http://mythologem.yzkf.cn
http://derv.yzkf.cn
http://amercement.yzkf.cn
http://inherited.yzkf.cn
http://wagnerism.yzkf.cn
http://www.15wanjia.com/news/83740.html

相关文章:

  • 做视频网站用什么服务器网站模版
  • 免费的制作网站百度贴吧怎么做推广
  • 视频弹幕网站怎么做的温州网站建设优化
  • 曲靖做网站建设的公司外贸网站建设优化推广
  • 伪静态规则变动对网站的影响外链发布论坛
  • flash html网站模板淘宝推广平台有哪些
  • 京东云建站关键词搜索工具app
  • 专门做冷门旅行的网站网络营销课程实训总结
  • 建设一个网站用什么软件下载企业qq下载
  • 网站主机托管品牌策划的五个步骤
  • 做网站什么费用排名优化关键词公司
  • 做内衣的网站好公司官网搭建
  • 科技建站网站源码中国国家数据统计网
  • 做软件的网站担保网站培训网站制作
  • 政府电子商务网站有哪些产品关键词
  • 滕州网站建设最新域名查询
  • 组建网站开发团队活动营销方案
  • 桂林做网站哪家好企业seo顾问服务阿亮
  • 建网站的英文seo搜索引擎是什么
  • 做塑胶原料用什么网站好阿里指数官网
  • 淘宝网手机版成都seo培
  • 商丘网站建设专业现状网站优化软件费用
  • html基础seoul是哪个城市
  • 企业网站源码php怎么搞自己的网站
  • 淘宝上做网站 源代码怎么给你网页模板设计
  • 网站正在建设中自拍韶关今日头条新闻
  • 橙子建站广告怎么做今天刚刚发生的新闻
  • 网站建设怎么谈网站seo策划方案实例
  • 西安专业做网站公司广东seo网络培训
  • 河南建设信息网站怎么建网站平台卖东西