"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 desempacotar JSON com eficiência em um mapa sem iteração de loop?

Como desempacotar JSON com eficiência em um mapa sem iteração de loop?

Publicado em 01/11/2024
Navegar:466

How to Efficiently Unmarshal JSON into a Map Without Loop Iteration?

Desempacotar JSON com eficiência em um mapa

No domínio da programação, a análise de dados de fontes externas desempenha um papel crucial. Ao lidar com JSON, um formato de dados onipresente, a capacidade de desempacotá-lo com eficiência em um mapa torna-se essencial.

Suponha que você encontre os seguintes dados JSON:

{"fruits":["apple","banana","cherry","date"]}

e tente carregar as "frutas" em uma interface de mapa[string]{}. A abordagem convencional envolve iterar cada elemento e inseri-lo em um mapa por meio de um loop. No entanto, existe um método mais eficiente que elimina a necessidade de iteração de loop.

Desempacotamento direto sem iteração

Para desempacotar os dados JSON diretamente no mapa desejado sem loop manual iteração, siga estas etapas:

  1. Importe o pacote necessário: import "encoding/json"
  2. Defina uma variável de mapa para receber os dados não empacotados: var m map[string][] string
  3. Use json.Unmarshal para desempacotar os dados JSON na variável do mapa: json.Unmarshal(src_json, &m)
  4. Acesse os dados não empacotados referenciando a chave do mapa: m["fruits" ][0]

Exemplo de implementação

package main

import "fmt"
import "encoding/json"

func main() {
    src_json := []byte(`{"fruits":["apple","banana","cherry","date"]}`)
    var m map[string][]string
    err := json.Unmarshal(src_json, &m)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%v", m["fruits"][0]) //apple
}

Nota: Esta abordagem pressupõe que os valores JSON são todos strings. Se os valores forem de um tipo diferente, talvez seja necessário modificar o tipo de mapa adequadamente (por exemplo, map[string][]interface{}).

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