golang的json處理

一、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

相關文章
相關標籤/搜索