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) } }
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