Table des matières
Contenu de la question
Solution de contournement
Maison développement back-end Golang Analyser le tableau JSON dans Golang en utilisant un type personnalisé

Analyser le tableau JSON dans Golang en utilisant un type personnalisé

Feb 09, 2024 am 10:39 AM
tableau json

使用自定义类型解析 golang 中的 JSON 数组

l'éditeur php Baicao vous propose un article sur l'analyse des tableaux JSON dans Golang. Dans Golang, nous pouvons utiliser des types personnalisés pour analyser des tableaux JSON complexes. Cette approche permet non seulement de mieux comprendre et traiter les données JSON, mais offre également un mode de fonctionnement plus flexible. Cet article présentera en détail comment utiliser les types personnalisés pour analyser les tableaux JSON et donnera quelques exemples de codes pratiques pour vous aider à mieux comprendre et appliquer cette technique. Que vous soyez débutant ou développeur expérimenté, vous pouvez beaucoup bénéficier de cet article, venez explorer ensemble !

Contenu de la question

J'essaie d'analyser un tableau json en golang, le format est le suivant :

2bœuf840f8f9d8bb724c7736cb14989

Par exemple, json doit contenir un schéma de différentes tables. J'ai essayé le code suivant mais le schéma revient vide :

package main

import (
    "encoding/json"
    "io"
    "log"
    "os"
)

type ColumnType struct {
    Name  string `json:"name"`
    Type  string `json:"type"`
}

type Schema struct {
    Schema map[string][]ColumnType
}

func main() {

    mocksSchemas, _ := os.Open("parse_config/mock_schema.json")

    var schemas []Schema
    content, err := io.ReadAll(mocksSchemas)
    if err != nil {
        log.Fatal("Error when reading mock file: ", err)
    }
    err = json.Unmarshal(content, &schemas)
    if err != nil {
        log.Fatal("Error during Unmarshal(): ", err)
    }

    defer mocksSchemas.Close()
}
Copier après la connexion

Qu'est-ce que j'ai fait de mal ? Je vous serais reconnaissant si vous pouviez signaler mon erreur Merci!

Solution de contournement

Pour faire correspondre le JSON source/destination, vous pouvez utiliser les types suivants :

type Schema map[string][]ColumnType
Copier après la connexion

Vous pouvez également utiliser quelque chose de plus simple à utiliser :

type Schema struct {
    Table   string
    Columns []ColumnType
}

func (s Schema) MarshalJSON() ([]byte, error) {
    return json.Marshal(map[string][]ColumnType{
        s.Table: s.Columns,
    })
}

func (s *Schema) UnmarshalJSON(data []byte) error {
    var m map[string][]ColumnType
    if err := json.Unmarshal(data, &m); err != nil {
        return err
    }
    for k, v := range m {
        s.Table = k
        s.Columns = v
        break
    }
    return nil
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Explication détaillée des opérations de tri et de filtrage des tableaux JSON en Java. Explication détaillée des opérations de tri et de filtrage des tableaux JSON en Java. Sep 06, 2023 pm 03:22 PM

Explication détaillée des opérations de tri et de filtrage des tableaux JSON en Java Dans le développement Java, le traitement des données JSON est une tâche courante. En tant que structure de données couramment utilisée, le tableau JSON nécessite souvent des opérations de tri et de filtrage dans les applications pratiques. Cet article présentera en détail les opérations de tri et de filtrage des tableaux JSON en Java et fournira des exemples de code correspondants. 1. Opération de tri du tableau JSON : utilisez l'objet JSONArray pour stocker le tableau JSON en Java et utilisez la bibliothèque json pour traiter les données JSON.

Commencez rapidement : techniques de fusion et de fractionnement de tableaux JSON en Java. Commencez rapidement : techniques de fusion et de fractionnement de tableaux JSON en Java. Sep 06, 2023 am 10:21 AM

Commencez rapidement : techniques de fusion et de division de tableaux JSON en Java Dans le développement de logiciels modernes, le format et la transmission des données sont devenus de plus en plus importants. Parmi eux, JSON (JavaScriptObjectNotation) est un format de données couramment utilisé, particulièrement adapté à l'interaction front-end et back-end et au stockage de données. Dans le développement Java, nous devons souvent gérer des objets JSON et des tableaux JSON. Cet article explique comment fusionner et diviser des tableaux JSON en Java, ainsi que des conseils et des exemples pour implémenter ces opérations.

Comment convertir un tableau JSON en CSV en Java ? Comment convertir un tableau JSON en CSV en Java ? Aug 21, 2023 pm 08:27 PM

JSON peut être utilisé comme format d’échange de données, il est léger et indépendant du langage. Un JSONArray peut analyser des chaînes de texte pour produire des objets de type vectoriel et prend en charge l'interface java.util.List. Nous pouvons convertir un tableau JSON au format CSV à l'aide de la classe org.json.CDL, qui fournit une méthode statique toString() pour convertir JSONArray en texte séparé par des virgules. Nous devons importer le package org.apache.commons.io.FileUtils pour stocker les données dans un fichier CSV à l'aide de la méthode writeStringToFile(). Syntaxepublicstaticj

Comment fusionner deux tableaux JSON en Java ? Comment fusionner deux tableaux JSON en Java ? Aug 20, 2023 pm 11:05 PM

Un JSON est un format d'échange de données léger, et le format JSON est une paire clé-valeur. JSONArray peut analyser le texte d'une chaîne pour générer un objet de type vectoriel et prend en charge l'interface java.util.List. Nous pouvons fusionner deux tableaux JSON en Java en utilisant la classe org.json.simple.JSONArray. Nous pouvons fusionner deux tableaux JSON dans le programme suivant en utilisant la méthode addAll() (héritée de l'interface java.util.List). Exemple

Guide du débutant : FAQ sur la manipulation des tableaux JSON en Java. Guide du débutant : FAQ sur la manipulation des tableaux JSON en Java. Sep 06, 2023 am 11:22 AM

Guide du débutant : FAQ sur la manipulation des tableaux JSON en Java Résumé : Avec le développement d'Internet, JSON (JavaScriptObjectNotation) est devenu un format courant pour l'échange de données. Dans le développement Java, la manipulation des tableaux JSON est une tâche courante. Cet article répondra aux questions courantes sur le fonctionnement des tableaux JSON dans le développement Java et fournira des exemples de code. Comment créer un tableau JSON ? En Java, vous pouvez utiliser des bibliothèques tierces telles que JSON-java

Comment analyser et parcourir un tableau JSON en JAVA ? Maîtrisez les compétences en traitement de tableaux JSON. Comment analyser et parcourir un tableau JSON en JAVA ? Maîtrisez les compétences en traitement de tableaux JSON. Sep 06, 2023 am 11:30 AM

Comment analyser et parcourir un tableau JSON en JAVA ? Maîtrisez les compétences en traitement de tableaux JSON. Avec le développement rapide de l'Internet moderne, JSON (JavaScriptObjectNotation) est devenu un format d'échange de données couramment utilisé. Il est concis, facile à lire et très adapté à la transmission de données dans le développement Web et les interfaces API. En JAVA, l'analyse et le parcours des tableaux JSON sont des opérations très courantes. Cet article explique comment utiliser JAVA pour analyser les tableaux JSON et donne le résultat correspondant.

Comment désérialiser un tableau JSON en type de liste générique en Java ? Comment désérialiser un tableau JSON en type de liste générique en Java ? Aug 20, 2023 pm 12:13 PM

La bibliothèque Gson fournit une classe nommée com.google.gson.reflect.TypeToken pour stocker les types génériques en créant une classe GsonTypeToken et en transmettant le type de classe. En utilisant ce type, Gson peut connaître la classe passée dans la classe générique. Syntaxe publicclassTypeToken<T>extendsObject Nous pouvons désérialiser un tableau JSON en une liste de types génériques dans l'exemple suivant importjava.lang.reflect.Type;importjava.util.*;importcom.go

Analyser le tableau JSON dans Golang en utilisant un type personnalisé Analyser le tableau JSON dans Golang en utilisant un type personnalisé Feb 09, 2024 am 10:39 AM

J'essaie d'analyser un tableau json en golang avec le format suivant : 2beef840f8f9d8bb724c7736cb14989 Par exemple, le json doit contenir le schéma de différentes tables. J'ai essayé le code suivant mais le schéma renvoie vide : packagemainimport("encoding/json""io""log""os")typeColumnTypestruct{Namestring`json:"name"`Typestring`json:"

See all articles