"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 puede manejar los tipos de campo JSON Dynamic durante la desabrochación?

¿Cómo puede manejar los tipos de campo JSON Dynamic durante la desabrochación?

Publicado el 2025-03-25
Navegar:968

How Can Go Handle Dynamic JSON Field Types During Unmarshaling?

manejo de los tipos de campo JSON Dynamic en Go

cuando solteriando a JSON en una estructura, uno puede encontrar inconsistencias en el tipo de valor de una clave específica en las solicitudes API. Este desafío surge cuando el servidor envía diferentes estructuras de objetos o referencias de cadena para la misma clave. Esto puede plantear un problema como GO requiere una estructura fija para la soltera. Considere los siguientes datos de JSON:

{ "mykey": [ {obj1}, {obj2} ] }

{
  "mykey": [
    {obj1}, 
    {obj2}
  ]
}

escriba datos de datos { Mykey [] interfaz {} `json:" mykey "` }

type Data struct {
    MyKey []interface{} `json:"mykey"`
}

{ "mykey": [ "/obj1/is/at/this/ruta", "/obj2/is/at/this/other/rath" ] }

{
  "mykey": [
    "/obj1/is/at/this/path", 
    "/obj2/is/at/this/other/path"
  ]
}

para i, v: = range data.mykey { interruptor x: = v. (tipo) { Cadena de casos: fmt.println ("tengo una cadena:", x) Interfaz MAP [String] MAP [String] {}: fmt.printf ("tengo un objeto: %#v \ n", x) } }

for i, v := range data.MyKey {
    switch x := v.(type) {
    case string:
        fmt.Println("Got a string: ", x)
    case map[string]interface{}:
        fmt.Printf("Got an object: %#v\n", x)
    }
}
Ú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