Conversão de strings UTF-8 em matrizes de bytes
Desempacotar JSON requer uma entrada de fatia de bytes, enquanto as strings são armazenadas como UTF-8 em Go . Este artigo explora a conversão eficiente de strings UTF-8 em matrizes de bytes.
Conversão direta
Go permite converter strings em fatias de bytes, criando uma cópia dos bytes da string :
s := "some text"
b := []byte(s)
No entanto, para strings grandes, essa abordagem é ineficiente devido à cópia.
Usando io.Reader
Uma alternativa eficiente é usar strings.NewReader() para criar um io.Reader que lê a string sem copiar:
s := `{ "somekey": "somevalue" }`
var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)
Essa abordagem evita copiar a string.
Pequenos textos JSON
Para textos JSON pequenos, a conversão direta continua sendo uma opção rápida:
s := `{ "somekey": "somevalue" }`
var result interface{}
err := json.Unmarshal([]byte(s), &result)
Nota: Ao ler JSON de um io.Reader (por exemplo, arquivo ou rede), passe o io. Leitor diretamente para json.NewDecoder() sem leituras de string intermediárias.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3