"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo convertir cadenas UTF-8 a []byte para desarmar JSON en Go?

¿Cómo convertir cadenas UTF-8 a []byte para desarmar JSON en Go?

Publicado el 2024-11-08
Navegar:733

How to Convert UTF-8 Strings to []byte for JSON Unmarshalling in Go?

Desclasificación de cadenas UTF-8 en []byte

Cuando se trabaja con JSON, la función de separación requiere una entrada de tipo []byte. Sin embargo, nuestros datos podrían almacenarse como una cadena UTF-8. Este artículo explora cómo convertir una cadena UTF-8 a []byte para una desclasificación exitosa.

Conversión usando []byte(s)

De acuerdo con la especificación Go , una cadena se puede convertir a []byte usando una conversión simple:

s := "some text"
b := []byte(s)

Sin embargo, esta conversión crea una copia del contenido de la cadena, lo que puede ser ineficiente para cadenas grandes.

Uso de io.Reader para eficiencia Unmarshal

Un enfoque alternativo es utilizar un io.Reader creado a partir de la cadena:

s := `{"somekey":"somevalue"}`
reader := strings.NewReader(s)
decoder := json.NewDecoder(reader)
var result interface{}
decoder.Decode(&result)

Este método evita copiar la cadena y es más eficiente para entradas grandes.

Consideraciones para diferentes escenarios

  • Para textos JSON pequeños, es aceptable convertir directamente a []byte usando []byte(s).
  • Para textos JSON grandes o cuando se trabaja con io.Readers, usar strings.NewReader y json.NewDecoder proporciona mejores resultados. eficiencia.

En resumen, convertir cadenas UTF-8 a []bytes para descomponer implica la conversión directa o el uso de un io.Reader para un manejo eficiente de entradas grandes. La elección depende de los requisitos específicos de la aplicación.

Último tutorial Más>

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