Conversión de cadenas UTF-8 en matrices de bytes
Desarmar JSON requiere una entrada de segmento de bytes, mientras que las cadenas se almacenan como UTF-8 en Go . Este artículo explora la conversión eficiente de cadenas UTF-8 a matrices de bytes.
Conversión directa
Go permite convertir cadenas en segmentos de bytes, creando una copia de los bytes de la cadena :
s := "some text"
b := []byte(s)
Sin embargo, para cadenas grandes, este enfoque es ineficiente debido a la copia.
Usando io.Reader
Una alternativa eficiente es usar strings.NewReader() para crear un io.Reader que lea la cadena sin copiar:
s := `{ "somekey": "somevalue" }`
var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)
Este enfoque evita copiar la cadena.
Textos JSON pequeños
Para textos JSON pequeños, la conversión directa sigue siendo una opción rápida:
s := `{ "somekey": "somevalue" }`
var result interface{}
err := json.Unmarshal([]byte(s), &result)
Nota: Al leer JSON desde un io.Reader (por ejemplo, un archivo o una red), pase el archivo io. Lector directamente a json.NewDecoder() sin lecturas de cadenas intermedias.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3