如何提取字符串的一部分

Dan*_*ate -1 string split go glide-golang

我需要获取字符串的 a 部分,即: { "token":"eyJ0eXjskdckjasdcaksdclkasdcsjnsc", "expiresOnTimestamp":9234234 }

我尝试过使用 split、splitafter。我需要得到这个令牌,只是令牌。

小智 5

您应该将其解析为map[string]interface{}

jsonInput := []byte(`{ "token":"eyJ0eXjskdckjasdcaksdclkasdcsjnsc", "expiresOnTimestamp":9234234 }`)
jsonContent := make(map[string]interface{})

unmarshalErr := json.Unmarshal(jsonInput, &jsonContent)

if unmarshalErr != nil {
    panic(unmarshalErr)
}

token, _ := jsonContent["token"].(string)
Run Code Online (Sandbox Code Playgroud)

或者创建一个专门struct用于解组的:

type Token struct {
    Value              string `json:"token"`
    ExpiresOnTimestamp int    `json:"expiresOnTimestamp"`
}

jsonInput := []byte(`{ "token":"eyJ0eXjskdckjasdcaksdclkasdcsjnsc", "expiresOnTimestamp":9234234 }`)

var jsonContent Token

unmarshalErr := json.Unmarshal(jsonInput, &jsonContent)

if unmarshalErr != nil {
    panic(unmarshalErr)
}

token := jsonContent.Value
Run Code Online (Sandbox Code Playgroud)