一、string跟[]byte的關係git
string跟[]byte能夠相互轉換github
s1 := "abcd" b1 := []byte(s1) fmt.Println(b1) // [97 98 99 100] s2 := "中文" b2 := []byte(s2) fmt.Println(b2) // [228 184 173 230 150 135], unicode,每一箇中文字符會由三個byte組成
二、json字符串轉jsonjson
var dat map[string]interface{} if err := json.Unmarshal([]byte(newstr), &dat); err == nil { fmt.Println(dat["info"]) }
json字符串轉json經過Unmarsha方法轉換,接受[]byte參數,所以咱們能夠經過[]byte[string]把string轉換爲[]byte將json字符串轉換後放到map中url
三、爲何要用gosoncode
上面把json字符串轉換成了map[string]interface{}咱們會發現,咱們接下來沒有辦法去遍歷json中的某個字段做進一步處理,除非咱們定義好告終構體。而goson提供了咱們一個方案regexp
github.com/panthesingh/gosonunicode
四、正則匹配字符串
result := util.HttpGet(onlineurl) reg := regexp.MustCompile(`\{.+\}`) strslince := reg.FindAllString(result, -1) newstr := strings.Join(strslince, "")
正則匹配後的字符串是[]string格式並不是string格式,咱們要把[]string轉換爲string才能進一步轉換成json,我用的string.Join方法,應該有更好方法string