"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como pode lidar com os tipos dinâmicos de campo JSON durante a desarrumação?

Como pode lidar com os tipos dinâmicos de campo JSON durante a desarrumação?

Postado em 2025-03-25
Navegar:703

How Can Go Handle Dynamic JSON Field Types During Unmarshaling?

lidando com os tipos de campo JSON dinâmico em go

Quando solucionando JSON in Go em uma estrutura, pode -se encontrar inconsistências no tipo de valor de uma chave específica entre as solicitações de API. Esse desafio surge quando o servidor envia diferentes estruturas de objetos ou referências de string para a mesma chave. Isso pode representar um problema, pois o GO requer uma estrutura fixa para o Unarshaling. Considere os seguintes dados JSON:

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

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

digite struct { Mykey [] interface {} `json:" mykey "` }

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

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

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

para i, v: = range data.mykey { Switch X: = v. (Type) { string de caso: fmt.println ("Got a string:", x) mapa de casos [string] interface {}: fmt.printf ("Obteve um 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)
    }
}
Tutorial mais recente Mais>

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