Как извлечь часть строки

Мне нужно получить часть строки, т.е.: { «токен»: «eyJ0eXjskdckjasdcaksdclkasdcsjnsc», "expiresOnTimestamp":9234234 }

Я пробовал использовать split, splitafter. Мне нужно получить этот токен, только токен.

Ваш ввод представляет собой строку JSON, поэтому относитесь к ней так: используйте encoding/json. Не пытайтесь разделить его. Или даже лучше: поскольку это токен JWT, используйте специализированную библиотеку.

icza 07.01.2023 22:19

Плохо, это не ввод, а вывод, это ответ, который я получаю при использовании POST-запроса, и мне нужно использовать только токен.

DanielAlzate 09.01.2023 16:38
В чем разница между методом "==" и equals()
В чем разница между методом "==" и equals()
Это один из наиболее часто задаваемых вопросов новичкам на собеседовании. Давайте обсудим его на примере.
Замена символа по определенному индексу в JavaScript
Замена символа по определенному индексу в JavaScript
В JavaScript существует несколько способов заменить символ в строке по определенному индексу.
0
2
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны разобрать его на 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)

Или создайте специальный struct для unmarshal:

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

Плохо, я был неясен, токен json - это вывод, а не ввод, применимо ли ваше предложение?

DanielAlzate 09.01.2023 16:22

Ваша структура JSON является входной, а token является выходной в контексте приложения.

Oshawott 09.01.2023 16:29

Другие вопросы по теме