日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Go 命令行参数,JSON 序列化与反序列化

發布時間:2025/3/20 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go 命令行参数,JSON 序列化与反序列化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#### Go 命令行參數,JSON 序列,反序列化
這一節來學習一下Go 如果解析命令行參數,以及JSON 的序列化及反序列化;
命令行參數對于熟悉Linux 的同學來說比較清楚,如: ls -a , wc -l ... 其中,-a, -l 都是命令行參數;
JSON 的序列化與反序列化在WEB 開發中很常見的, 這節帶領大家學習一下在Go 中如何操作JSON
##### 命令行參數
在Go 中os.Args 是一個字符串切片,存儲了所有的命令參數 package mainimport ("fmt""os" )func main(){fmt.Printf("命令行參數有%d個\n",len(os.Args))for i,v := range os.Args {fmt.Printf("當前是第%d個參數,參數是%s\n",i+1,v)} }

  


##### 使用flag 包來解析命令行參數
上面os.Args 是比較原始的方式解析參數,對于帶指定的參數形式,就比較吃力了;
使用flag 包可以解決這個問題 package mainimport ("flag""fmt" )func main() {var username stringvar password stringvar host stringvar port intflag.StringVar(&username,"u","","database username ,default empty")flag.StringVar(&password,"p","","database password,default empty")flag.StringVar(&host,"h","","database host,default empty")flag.IntVar(&port,"port",3306,"database host port,default 3306")flag.Parse()fmt.Printf("username=%s\n",username)fmt.Printf("password=%s\n",password)fmt.Printf("host=%s\n",host)fmt.Printf("username=%s\n",username)fmt.Printf("port=%d\n",port)// ./main.exe -u root -p 1201 -h 127.0.0.1 -port 33306//username=root//password=1201//host=127.0.0.1//username=root//port=33306 }

  


##### JSON 序列化
JSON 的全稱為JavaScript Object Notation ,它是一種輕量級的數據交換格式;
在JS 中一切皆對象,所以任何的數據類型都可以用JSON 來表示: 如Go 中的字符串,數組,切片,map,結構體等;
JSON 的序列化是指將有key-value 結構的數據類型(如結構體,map,切片)序列化成JSON 字符串的操作 package mainimport ("encoding/json""fmt" )// 如果需要序列化后的key 名自定義,需要使用tag type Person struct {Name string `json:"username"`Age int `json:"person_age"`// 對于結構體內不能導出字段// 首字母小寫的// 無法序列化extra string } func marshal(data interface{}) {body, err := json.Marshal(data)if err != nil {fmt.Println(err)fmt.Println("序列化失敗")return}fmt.Print("序列化后的數據為:")fmt.Println(string(body))} func structToJSON() {person := Person{"Tom",21,"i want be a teacher"}marshal(person)// {"username":"Tom","person_age":21} } func mapToJSON() {person := make(map[string]interface{})person["name"] = "Jack"person["age"] = 20person["extra"] = "i want play game"marshal(person) // {"age":20,"extra":"i want play game","name":"Jack"} } func sliceToJSON(){person := make([]string,0)person = append(person,"Tom")person = append(person,"Jack")person = append(person,"hey")marshal(person) // ["Tom","Jack","hey"] } func main() {structToJSON()mapToJSON()sliceToJSON() }

  


##### JSON 反序列化
JSON 反序列化是指將 JSON 字符串序列化成對應的數據類型(結構體,map,切片)的操作 package mainimport ("encoding/json""fmt" )func unmarshalMap(){str := `{"name":"tom","age":21,"extra":"i am english teacher"}`var person map[string]interface{}err := json.Unmarshal([]byte(str),&person)if err != nil {fmt.Println("JSON 反序列化失敗")fmt.Println(err)return}fmt.Print("序列化的結果為:")fmt.Println(person) //map[age:21 extra:i am english teacher name:tom] } func unmarshalSlice(){str := `["tom","jack","hey","joy"]`var person []stringerr := json.Unmarshal([]byte(str),&person)if err != nil {fmt.Println("JSON 反序列化失敗")fmt.Println(err)return}fmt.Print("序列化的結果為:")fmt.Println(person) //[tom jack hey joy] }func unmarshalStruct(){str := `{"name":"tom","age":21,"extra":"i am english teacher"}`var person struct{Name stringAge int// 反序列化也一樣,如果是不可導出字段// 則不能反序列化extra string}err := json.Unmarshal([]byte(str),&person)if err != nil {fmt.Println("JSON 反序列化失敗")fmt.Println(err)return}fmt.Print("序列化的結果為:")fmt.Println(person) //{tom 21 } } func main(){unmarshalMap()unmarshalStruct()unmarshalSlice() }

  最新文章在個人微信公眾號,歡迎關注, 一同交流學習;

轉載于:https://www.cnblogs.com/Mail-maomao/p/11555161.html

總結

以上是生活随笔為你收集整理的Go 命令行参数,JSON 序列化与反序列化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 不用播放器av | 丁香婷婷综合激情五月色 | 大桥未久恸哭の女教师 | 欧美日韩久久久久 | 重口变态虐黄网站 | 成人熟女一区二区 | 亚洲视频国产精品 | 在线一区二区不卡 | 新x8x8拨牐拨牐永久免费影库 | 91亚洲精 | 久久神马影院 | 久久久精品一区二区涩爱 | 欧美日韩视频免费 | 国产无遮挡18禁无码网站不卡 | 污污av| av网站在线看 | 国产青草| 九热精品| 欧美人在线 | 日韩久久高清 | 极品尤物魔鬼身材啪啪仙踪林 | 女人高潮娇喘声mp3 乱色视频 | av导航在线 | 国产精品99久久久久久人 | 色呦呦在线 | 欧美乱淫 | 欧美综合亚洲 | 高h校园不许穿内裤h调教 | 欧美亚洲一级片 | 免费看成人啪啪 | 香蕉视频黄在线观看 | 香蕉视频色版 | 中文字幕在线视频不卡 | 亚洲一二三区av | 国产一级片免费视频 | 韩日视频一区 | 好吊操这里只有精品 | 欧美性色a | 三级影片在线播放 | av合集| 亚洲日本三级 | 国产99久一区二区三区a片 | 五月天欧美 | 国产夫妇交换聚会群4p | 丰满肥臀噗嗤啊x99av | 99热.com| 在线视频 91 | 丁香花电影在线观看免费高清 | 欧美三级免费观看 | 欧洲免费av | 国产精品美女视频 | 尤物视频在线看 | 婷婷色网| 亚洲精品在线视频 | 亚洲卡一卡二卡三 | 国产美女视频一区 | 肉丝美脚视频一区二区 | 日本中文在线视频 | 欧美天堂在线观看 | 三级黄在线观看 | 求欧美精品网址 | 精品国产网站 | 国产精品久久毛片av大全日韩 | 成人区人妻精品一区二区网站 | www,99| 一级一片免费看 | 亚洲一区人妻 | 91网在线| 中文字幕第一区 | 成人自拍视频网站 | 亚洲国产精品综合 | 亚洲爱爱av | 91九色论坛| 中文字幕免费一区二区 | 日本黄网站色大片免费观看 | 日韩午夜av| 毛片随便看 | 精品动漫一区二区三区在线观看 | 中文字幕在线视频第一页 | 欧美成人精品一区二区男人小说 | 少妇人妻偷人精品无码视频新浪 | 色狠狠久久av大岛优香 | 国产成人一区二区三区 | 亚洲av久久久噜噜噜噜 | 俄罗斯乱妇 | 亚洲AV无码国产精品 | 久久国产主播 | 操人视频免费看 | 大胸奶汁乳流奶水出来h | 日本一区二区三区免费视频 | 日韩精品卡通动漫网站 | 中文字幕av无码一区二区三区 | 日批视频免费 | 欧美无人区码suv | 精品国产成人亚洲午夜福利 | 久久无码精品丰满人妻 | 男生看的污网站 | 国产精品99精品无码视亚 | 欧美性视频一区二区 |