


Comment enregistrer les données JSON dans la base de données dans Golang ?
Jun 06, 2024 am 11:24 AMLes données JSON peuvent être enregistrées dans une base de données MySQL en utilisant la bibliothèque gjson ou la fonction json.Unmarshal. La bibliothèque gjson fournit des méthodes pratiques pour analyser les champs JSON, et la fonction json.Unmarshal nécessite un pointeur de type cible pour désorganiser les données JSON. Les deux méthodes nécessitent la préparation d'instructions SQL et l'exécution d'opérations d'insertion pour conserver les données dans la base de données.
Comment enregistrer des données JSON dans une base de données dans Golang
Introduction
Dans Golang, enregistrer des données JSON dans une base de données est une tache courante. Cet article explorera différentes méthodes de persistance des données JSON à l'aide de bases de données couramment utilisées telles que MySQL, et fournira des exemples pratiques à titre de référence.
Utiliser la bibliothèque gjson
La bibliothèque gjson est un package Golang populaire pour analyser et manipuler les données JSON. Il fournit des méthodes simples pour analyser les données JSON dans des structures de données Go telles que des cartes et des tranches.
package main import ( "database/sql" "encoding/json" "fmt" _ "github.com/go-sql-driver/mysql" "github.com/tidwall/gjson" ) func main() { db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database") if err != nil { panic(err) } defer db.Close() jsonData := `{ "name": "John Doe", "age": 30, "address": { "street": "Main Street", "city": "New York" } }` values := []interface{}{} // 解析 JSON 字段 name := gjson.Get(jsonData, "name").String() age := gjson.Get(jsonData, "age").Int() address := gjson.Get(jsonData, "address").String() values = append(values, name, age, address) // 準備 SQL 語句 stmt, err := db.Prepare("INSERT INTO users (name, age, address) VALUES (?, ?, ?)") if err != nil { panic(err) } // 執(zhí)行插入操作 _, err = stmt.Exec(values...) if err != nil { panic(err) } fmt.Println("JSON data saved to database successfully") }
Utilisation de json.Unmarshal
La fonction json.Unmarshal fait partie de la bibliothèque standard Golang et est utilisée pour décomposer les données JSON en variables Go. Cette méthode nécessite un pointeur de type cible comme deuxième paramètre.
package main import ( "database/sql" "encoding/json" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database") if err != nil { panic(err) } defer db.Close() jsonData := `{ "name": "John Doe", "age": 30, "address": { "street": "Main Street", "city": "New York" } }` var user struct { Name string Age int Address string } err = json.Unmarshal([]byte(jsonData), &user) if err != nil { panic(err) } // 準備 SQL 語句 stmt, err := db.Prepare("INSERT INTO users (name, age, address) VALUES (?, ?, ?)") if err != nil { panic(err) } // 執(zhí)行插入操作 _, err = stmt.Exec(user.Name, user.Age, user.Address) if err != nil { panic(err) } fmt.Println("JSON data saved to database successfully") }
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 grace à 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)

TointegrategolangServices withexistingpythoninfrastructure, userestapisorgrpcForInter-Servicecommunication, permettant à la perfection

GolangoffersSuperiorPerformance, nativeConcaunternandViagoroutines, and efficaceResourceUsage, faisant la provision de la trafic, low-lantentencyapis; 2.python, tandis que la locosystème de lavel

La fa?on d'accéder aux objets JSON imbriqués dans Python est de clarifier d'abord la structure, puis d'indexer la couche par couche. Tout d'abord, confirmez la relation hiérarchique de JSON, comme un dictionnaire ou une liste imbriquée du dictionnaire; Utilisez ensuite les clés du dictionnaire et la liste d'index pour accéder à la couche par couche, telles que les données "détails" ["zip"] pour obtenir le codage zip, les données "Détails" [0] pour obtenir le premier passe-temps; Pour éviter KeyError et IndexError, la valeur par défaut peut être définie par la méthode .get (), ou la fonction d'encapsulation Safe_get peut être utilisée pour obtenir un accès sécurisé; Pour des structures complexes, recherchez ou utilisez des bibliothèques tierces telles que JMESPath pour gérer.

Le traitement des données JSON est très courant dans Python, en particulier lors de l'interaction avec les demandes de réseau et les API. Voici les opérations communes: 1. Utilisez JSON.loads () pour analyser les cha?nes JSON dans des objets Python (tels que les dictionnaires ou les listes), qui convient au traitement après avoir obtenu des données de l'API; 2. Utilisez JSON.Dumps () pour sérialiser les objets Python en cha?nes JSON, qui convient à l'envoi de données ou à l'enregistrement des fichiers de configuration, et peut optimiser le format de sortie via les paramètres de retrait et d'assurance_ascii; 3. Utilisez JSON.Load () et JSON.Dump () pour lire et écrire des fichiers JSON respectivement, ce qui convient au traitement de la configuration locale ou des données par lots; Faites attention à la charge

Utilisez la fonction JSON_DECODE et définissez le deuxième paramètre sur true pour convertir la cha?ne JSON en tableau PHP; 1. L'utilisation est $ array = json_decode ($ jsonstring, true); 2. Si le deuxième paramètre n'est pas ajouté, l'objet STDClass sera renvoyé; 3. Assurez-vous que la cha?ne d'entrée est valide JSON, sinon elle renverra NULL; 4. Vous pouvez vérifier les erreurs via JSON_LAST_ERROR (); 5. Les erreurs courantes comprennent des problèmes de format tels que des citations non cl?turées, des virgules redondantes, etc.; 6. Après la conversion dans l'exemple, vous pouvez accéder à la valeur correspondante via la touche de tableau; Tant que vous faites attention aux paramètres du format et des paramètres, la conversion peut être terminée en douceur.

Toswitchdatabasesinredis, usethesectCommandfollowedbythenumericindex.redissupportsmultiplelogicaldatabases (default16), andachclientConnectionmainSitsOwnSelectedDatabase.1.useselecdinfy (par exemple, select2) toswitchtoanotherdatabase.2.20

La migration du schéma de base de données fait référence au processus de modification de la structure de la base de données sans modifier les données, ce qui comprend principalement l'ajout ou la suppression de tables, la modification des types de colonnes ou des contraintes, la création ou la suppression d'index, la modification des valeurs par défaut ou les paramètres nullables, etc. Il est généralement motivé par les mises à jour des applications, par exemple, lorsque les nouvelles fonctionnalités doivent stocker les préférences de l'utilisateur, de nouvelles colonnes sont ajoutées au tableau utilisateur. Contrairement aux migrations de données qui traitent de grandes quantités de mouvements de données, la migration de motifs se concentre sur les changements structurels. Pour effectuer des migrations en mode en toute sécurité, le contr?le de la version doit être utilisé pour suivre les fichiers de structure, les vérifier dans l'environnement de test avant l'environnement de production, diviser la grande migration en petites étapes, éviter plusieurs changements non pertinents en un seul temps et noter que les modifications à de grandes tableaux peuvent provoquer des problèmes de verrouillage de table à long terme. Vous pouvez utiliser des outils tels que Pt-online-Schema-chan.

MySQL prend en charge les types de données JSON introduits depuis la version 5.7 pour gérer les données structurées et semi-structurées. 1. Lorsque vous insérez des données JSON, vous devez utiliser un format juridique. Vous pouvez utiliser des fonctions JSON_Object ou JSON_Array pour construire ou passer dans la cha?ne JSON correcte; 2. Les mises à jour doivent utiliser JSON_SET, JSON_REPLACE, JSON_REMOVE pour modifier certains champs au lieu de l'ensemble du remplacement; 3. Query peut extraire les champs via JSON_CONTAINS, -> Opérateurs, et noter que la valeur de la cha?ne doit être double; 4. Il est recommandé de créer une colonne et un index générées pour améliorer les performances lors de l'utilisation de type JSON.
