Table des matières
Contenu de la question
. Le tableau est défini en externe et je veux que chacune des quatre structures ait des méthodes)
Maison développement back-end Golang golang : tableaux json qui ont également des méthodes

golang : tableaux json qui ont également des méthodes

Feb 09, 2024 am 10:15 AM
tableau json

golang:也有方法的 json 数组

L'éditeur PHP Youzi vous propose un article sur Golang, le sujet est "golang : des tableaux json qui ont aussi des méthodes". Golang est un langage de programmation simple et efficace, et le tableau json est l'un des formats de données couramment utilisés. Cet article explorera comment opérer sur les tableaux json dans Golang et présentera quelques méthodes utiles. Que vous soyez débutant ou développeur expérimenté, cet article peut vous fournir de précieuses informations et conseils. Découvrons-le ensemble !

Contenu de la question

J'ai une structure de données comme celle-ci :

type (
  parent struct {
    items []*child
  }
  child struct {
    field string `json:"field"`
  }
)
Copier après la connexion

J'espère aussi parent qu'il existe un moyen :

func (p *parent) example() { }
Copier après la connexion

Mais l'exigence de json est que le parent soit juste un tableau :

[
  {
    "field": "data"
  }
]
Copier après la connexion

Je veux que parent 是一个简单的数组,但为了让 parent soit un simple tableau, mais pour que

ait des méthodes, il ne peut pas s'agir d'un type de tableau.

Existe-t-il un moyen de résoudre ces deux problèmes avec une seule structure de données ?

greatgrandparent包含[]grandparent,而grandparent有一个包含parentparent(Pour compliquer les choses, la structure de données réelle que je dois utiliser comporte deux niveaux : arrière-grand-parent contient []grand-parent et grand-parent. est un

contenant

. Le tableau est défini en externe et je veux que chacune des quatre structures ait des méthodes)

Solution de contournement

Pour que le parent ait des méthodes, il ne peut pas être de type Array. C'est possible, il doit juste avoir un

nom

, puisque seuls les types nommés (ou les pointeurs vers des types nommés) peuvent implémenter des méthodes. Voici le code go valide :

type parent []*child

func (p parent) example() { /* ... */ }
Copier après la connexion
parentNotez que ce qui précède

est une tranche et non un tableau. Les tableaux en go ont une longueur statique, vous ne pouvez pas les augmenter ni les réduire, les tranches par contre ont une longueur dynamique, vous pouvez les redimensionner à volonté. Les tableaux et les tranches sont étroitement liés, mais pas identiques.

json.unmarshaler/json.marshaler

Une autre façon consiste à demander au type struct d'implémenter l'interface

 :

type parent struct { Items []*child }

func (p *parent) UnmarshalJSON(data []byte) error {
    return json.Unmarshal(data, &p.Items)
}

func (p parent) MarshalJSON() ([]byte, error) {
    return json.Marshal(p.Items)
}
Copier après la connexion
🎜Ce qui précède générera la structure json requise. 🎜

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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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

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

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 pouvons-nous implémenter un tableau JSON à l'aide de l'API de streaming en Java ? Comment pouvons-nous implémenter un tableau JSON à l'aide de l'API de streaming en Java ? Sep 19, 2023 pm 06:01 PM

L'interface JsonGenerator peut être utilisée pour diffuser des données JSON vers une source de sortie. Nous pouvons créer ou implémenter un tableau JSON à l'aide de la méthode writeStartArray() de JsonGenerator, qui écrit une paire de caractères nom JSON/tableau de début dans le contexte d'objet actuel. La méthode writeStartObject() écrit le caractère de départ de l'objet JSON, qui n'est valide que dans le contexte du tableau, et la méthode writeEnd() écrit la fin du contexte actuel. Exemple de syntaxe JsonGeneratorwriteStartArray(Stringname) importjava.io.*;imp

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