"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 puedo descifrar formatos JSON desconocidos en Go?

¿Cómo puedo descifrar formatos JSON desconocidos en Go?

Publicado el 2024-12-23
Navegar:691

How Can I Unmarshal Unknown JSON Formats in Go?

Desclasificar datos JSON de formato desconocido

Introducción

Sus datos JSON siguen un formato desconocido, lo que presenta un desafío a la hora de descomponerlos en una estructura GoLang. Este artículo lo guiará a través de los pasos para manejar este escenario de manera efectiva.

Desarmar con la interfaz de mapa[string]{}

Ya que no conoce las claves en Por adelantado, puede usar map[string]interface{} para descomponer su carga útil JSON. Esto le permite almacenar los pares clave-valor como un mapa sin especificar los tipos de valores.

var grades map[string]interface{}

err := json.Unmarshal([]byte(jsonString), &grades)
fmt.Println(err)

fmt.Printf("%#v\n", grades)

Esto generará los datos JSON como un mapa anidado de cadenas a interfaces, lo que puede ser útil para inspeccionar y procesar los datos dinámicamente.

Usando json:"-" Etiqueta

Puede excluir ciertos campos de la clasificación/desclasificación JSON usando el json: etiqueta "-". Esto puede resultar útil si desea mantener algunos datos privados o evitar referencias circulares.

type GradeData struct {
    Grades map[string]interface{} `json:"-"`
}

var gradesData GradeData
err := json.Unmarshal([]byte(jsonString), &gradesData.Grades)
fmt.Println(err)

fmt.Printf("%#v\n", gradesData)

En este ejemplo, el campo Calificaciones no se incluirá en la representación JSON de gradosDatos, pero aún se puede usar para almacenar y recuperar el JSON. datos.

Conclusión

Utilizando la interfaz map[string]{} y la etiqueta json:"-", puede realizar correctamente descomponer datos JSON de formato desconocido en estructuras GoLang. Este enfoque le permite manejar estructuras JSON dinámicas y desconocidas con elegancia.

Ú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