"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 posso unir uma matriz JSON com tipos de dados mistos em Go?

Como posso unir uma matriz JSON com tipos de dados mistos em Go?

Postado em 2025-03-23
Navegar:643

How Can I Unmarshal a JSON Array with Mixed Data Types in Go?

unarshalling uma matriz de diversos tipos

no manuseio JSON, matrizes solteiras com tipos de elementos variados podem ser desafiadores. Este artigo aborda a questão das matrizes unidas que consistem em elementos com tipos de dados conhecidos, mas não classificados. Usando a asserção do tipo, o tipo de dados pode ser determinado dinamicamente. importação ( "Encoding/JSON" "FMT" ) var my_json string = `{ "An_array": [ "With_a String", { "e": "Some_more", "diferente": ["aninhado", "tipos"] } ] } ` Func IdentifyDatatypes (f interface {}) { Switch vf: = f. (Type) { mapa de casos [string] interface {}: fmt.println ("é um mapa:") para k, v: = range vf { Switch VV: = V. (Type) { string de caso: fmt.printf (" %v: é string - %q \ n", k, vv) caso int: fmt.printf (" %v: é int - %q \ n", k, vv) padrão: fmt.printf ("%v:", k) IdentifyDatatypes (V) } } case [] interface {}: fmt.println ("é uma matriz:") para k, v: = range vf { Switch VV: = V. (Type) { string de caso: fmt.printf (" %v: é string - %q \ n", k, vv) caso int: fmt.printf (" %v: é int - %q \ n", k, vv) padrão: fmt.printf ("%v:", k) IdentifyDatatypes (V) } } } } func main () { fmt.println ("json: \ n", my_json, "\ n") interface var f {} err: = json.unmarshal ([] byte (my_json), & f) se err! = nil { fmt.println (err) } outro { fmt.printf ("JSON:") IdentifyDatatypes (f) } }

output

O código produz a seguinte saída:

json: { "An_array": [ "With_a String", { "e": "Some_more", "diferente": ["aninhado", "tipos"] } ] } JSON: é um mapa: An_array: é uma matriz: 0: é string - "with_a string" 1: é um mapa: e: é string - "Some_more" Diferente: é uma matriz: 0: é string - "aninhado" 1: Is String - "Types" Essa abordagem permite identificação e manuseio dinâmicos de tipos de elementos dentro da matriz, fornecendo uma solução versátil para suas necessidades de unirhalling.

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