Sérialisation et désérialisation des données json
Présentation | Le nom complet de json est la notation d'objet Javascript, et le nom chinois complet est : notation d'objet js. Parmi les protocoles de sérialisation et de désérialisation, on trouve : json, xml, yaml, protocol buffer, etc. Parmi eux, json est la principale forme de transmission des données contractuelles des API front-end et back-end. json prend en charge quatre types de données : valeurs numériques, valeurs booléennes, tableaux et objets. Avec ces quatre types de données, des modèles de données complexes peuvent être construits. |
En langage Go, nous pouvons utiliser la bibliothèque standard json pour implémenter la sérialisation et la désérialisation des données. Cette bibliothèque fournit des méthodes pratiques pour sérialiser et désérialiser des cartes, des structures, des tableaux, des tranches et des types de données primitifs intégrés. En utilisant la bibliothèque standard json, nous pouvons facilement convertir les données au format json et les analyser au type de données d'origine si nécessaire. Cela nous offre une grande commodité dans le traitement des données.
Ici, je vais donner trois exemples pour illustrer l'utilisation de json. Pour les débutants, vous pouvez souvent utiliser un seul objet de structure pour recevoir et envoyer des données. Jetons un coup d'œil aux exemples spécifiques ci-dessous. 1. Utilisez un objet structure pour recevoir des données : ``` tapez Structure de personne { Chaîne de nom `json:"name"` Âge int `json :"âge"` } fonction main() { data := `{"nom": "Alice", "âge": 25}` var p Personne err := json.Unmarshal([]byte(data), &p) si erreur != nul { fmt.Println("Échec de l'analyse de json :", euh) retour
type Personne struct {<br>
Chaîne de nom `json:"name"`<br>
Âge int `json:"âge"`<br>
}
<br>
func main() {<br>
var (<br>
nouveauPar personne<br>
bts []octet<br>
)<br>
par:=Personne{<br>
Nom : "Lily",<br>
Âge : 29,<br>
}<br>
// Sérialisation<br>
si bts, err = json.Marshal(per); err !=nil{<br>
log.Fatal(err.Error())<br>
retour<br>
}
<br>
if err = json.Unmarshal(bts, &newPer); err !=nil{<br>
log.Fatal(err.Error())<br>
retour<br>
}<br>
fmt.Println(newPer)<br>
}
func main() {<br>
var (<br>
smap = map[string]int{<br>
"Âge": 28,<br>
"Sexe": 1,<br>
"Étage": 12,<br>
}<br>
newSmap = make(map[string]int)<br>
bts []octet<br>
)<br>
si bts, err = json.Marshal(smap); err !=nil {<br>
log.Fatal(err.Error())<br>
retour<br>
}<br>
if err = json.Umarshal(bts, &newSmap); err !=nil {<br>
log.Fatal(err.Error())<br>
retour<br>
}<br>
fmt.Println(newSmap)<br>
}
func main() {<br>
var (<br>
âges []int = []int{23, 20, 28, 25, 30}<br>
bts []octet<br>
euh erreur<br>
newAges = make([]int, len(ages))<br>
)<br>
si bts, err = json.Marshal(ages); err != nil {<br>
fmt.Println(err.Error())<br>
retour<br>
}<br>
if err = json.Unmarshal(bts, &newAges); err != nil {<br>
fmt.Println(err.Error())<br>
retour<br>
}<br>
fmt.Println("nouveaux âges : ", nouveauxÂges)<br>
retour<br>
}
Les débutants sont relativement clairs sur la sérialisation JSON et la désérialisation des structures, mais ils peuvent rarement ou jamais utiliser les deux dernières.
- Pour les données de type tableau, certains frontaux les utiliseront dans des scénarios commerciaux.
- Pour le type de carte, généralement lorsque l'interface REST tierce est appelée sur le serveur de langage Go, le serveur souhaite uniquement que le code retour spécifié détermine si l'appel réussit. Le programmeur ne voulait pas écrire la définition globale de la structure struct, ou peut-être était-il paresseux, alors il a utilisé une map[string]interface{} pour recevoir les données de retour. À ce stade, après la désérialisation via Unmarshal dans la bibliothèque standard json, le code de retour est obtenu via map["err_code"].(int), puis une autre logique de traitement ultérieure est effectuée.
Ici, je souhaite également expliquer les fonctionnalités que j'utilise parfois lors de l'utilisation d'une structure. La fonctionnalité de valeur de balise est omitempty supportée par le json de la structure, par exemple :
type Personne struct {<br>
Chaîne de nom `json:"name,omitempty"`<br>
Âge int `json:"âge"`<br>
}<br>
Cela signifie que lorsque la valeur de la balise de la fonction omitempty est définie, si la valeur de l'élément de données de la structure correspondante est nulle, elle ne sera pas sortie. C'est-à-dire que si un élément des données de structure renvoyées par le serveur est vide et que cet élément n'est pas renvoyé au front-end, vous pouvez utiliser l'attribut json tag value d'omitempty.
Nous vous proposons ici une bibliothèque d'analyse json écrite par Taowen, un ingénieur senior de Didi Company, qui est la plus rapide au monde. Adresse github : jsoniter.
- Présentation détaillée d'OpenFermion : cliquez pour voir
- Adresse de téléchargement OpenFermion : cliquez pour télécharger
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds











La définition de l'emplacement de l'interprète dans PyCharm peut être réalisée via les étapes suivantes: 1. Ouvrez PyCharm, cliquez sur le menu "Fichier" et sélectionnez "Paramètres" ou "Préférences". 2. Recherchez et cliquez sur "Projet: [Nom de votre projet]" et sélectionnez "PythonInterpreter". 3. Cliquez sur "addterpreter", sélectionnez "SystemInterpreter", accédez au répertoire d'installation Python, sélectionnez le fichier exécutable Python, puis cliquez sur "OK". Lors de la configuration de l'interprète, vous devez prêter attention à l'exactitude du chemin, à la compatibilité des versions et à l'utilisation de l'environnement virtuel pour assurer le fonctionnement fluide du projet.

J'ai beaucoup d'expérience dans la participation aux activités d'échange de technologie hors ligne VSCODE, et mes principaux gains comprennent le partage du développement plug-in, des démonstrations pratiques et une communication avec d'autres développeurs. 1. Partage du développement plug-in: J'ai appris à utiliser l'API plug-in de VScode pour améliorer l'efficacité de développement, telles que la mise en forme automatique et les plug-ins d'analyse statique. 2. Démonstration pratique: j'ai appris à utiliser VScode pour le développement à distance et j'ai réalisé sa flexibilité et son évolutivité. 3. Communiquez avec les développeurs: j'ai obtenu des compétences pour optimiser la vitesse de démarrage VSCODE, telles que la réduction du nombre de plug-ins chargés au démarrage et la gestion de l'ordre de chargement du plug-in. En bref, cet événement m'a beaucoup profité et je recommande vivement ceux qui sont intéressés par VSCODE de participer.

L'installation et la configuration de MySQL peuvent être terminées via les étapes suivantes: 1. Téléchargez le package d'installation adapté au système d'exploitation à partir du site officiel. 2. Exécutez l'installateur, sélectionnez l'option "Default Default" et définissez le mot de passe de l'utilisateur racine. 3. Après l'installation, configurez les variables d'environnement pour vous assurer que le répertoire bac de MySQL est dans le chemin du chemin. 4. Lors de la création d'un utilisateur, suivez le principe des autorisations minimales et définissez un mot de passe fort. 5. Ajustez les paramètres Innodb_Buffer_Pool_Size et Max_Connections lors de l'optimisation des performances. 6. Sauvegarder régulièrement la base de données et optimiser les instructions de requête pour améliorer les performances.

Linux System restreint les ressources utilisateur via la commande UliMIT pour éviter une utilisation excessive des ressources. 1.Ulimit est une commande shell intégrée qui peut limiter le nombre de descripteurs de fichiers (-n), la taille de la mémoire (-v), le nombre de threads (-u), etc., qui sont divisés en limite douce (valeur effective actuelle) et limite dure (limite supérieure maximale). 2. Utilisez directement la commande ulimit pour une modification temporaire, telle que Ulimit-N2048, mais elle n'est valable que pour la session en cours. 3. Pour un effet permanent, vous devez modifier /etc/security/limits.conf et les fichiers de configuration PAM, et ajouter SessionRequiredPam_limits.so. 4. Le service SystemD doit définir Lim dans le fichier unitaire

Informrix et MySQL sont tous deux des systèmes de gestion de base de données relationnels populaires. Ils fonctionnent bien dans les environnements Linux et sont largement utilisés. Ce qui suit est une comparaison et une analyse des deux sur la plate-forme Linux: Installation et configurer Informrix: le déploiement d'informations sur Linux nécessite le téléchargement des fichiers d'installation correspondants, puis la réalisation du processus d'installation et de configuration en fonction de la documentation officielle. MySQL: Le processus d'installation de MySQL est relativement simple et peut être facilement installé via des outils de gestion des packages système (tels que APT ou YUM), et il existe un grand nombre de didacticiels et une prise en charge de la communauté sur le réseau pour référence. Performance Informrix: Informrix a d'excellentes performances et

Dans le système d'exploitation Debian, l'intégration de Filebeat et Elasticsearch peut simplifier la collecte, la transmission et le stockage des données de journal. Voici les étapes de mise en œuvre spécifiques: Étape 1: La première tâche de déploiement d'Elasticsearch est de terminer l'installation d'Elasticsearch dans le système Debian. Vous pouvez télécharger la version correspondante du progiciel Elasticsearch à partir du site officiel élastique et terminer le processus d'installation selon les directives officielles. Téléchargez et installez elasticsearchwgethttps: //artifacts.elastic.co/downloads/elasticse

La raison pour laquelle l'éditeur se bloque après la mise à jour du plugin VScode est qu'il existe des problèmes de compatibilité avec le plugin avec les versions existantes de VScode ou d'autres plugins. Les solutions incluent: 1. Désactiver le plug-in pour résoudre les problèmes un par un; 2. Détrracez le plug-in Problem vers la version précédente; 3. Trouvez d'autres plug-ins; 4. Gardez le VSCODE et le plug-in mis à jour et effectuez des tests suffisants; 5. Configurez la fonction de sauvegarde automatique pour éviter la perte de données.

La mise en œuvre du déploiement automatisé de Docker sur le système Debian peut être effectuée de diverses manières. Voici le guide détaillé des étapes: 1. Installez d'abord Docker, assurez-vous
