Maison> développement back-end> Golang> le corps du texte

golang modifier le fichier json

王林
Libérer: 2023-05-10 18:54:07
original
803 Les gens l'ont consulté

Le langage Go est désormais devenu un langage très populaire dans le domaine du développement Internet. Il est efficace, concis et facile à utiliser. Il offre également de bonnes performances de concurrence et prend en charge la programmation réseau. Dans le même temps, une autre fonctionnalité intéressante de Golang est qu'il peut gérer les fichiers JSON de manière très pratique. Nous pouvons facilement lire et modifier les fichiers JSON en langage Go.

Dans cet article, je vais vous présenter comment modifier les fichiers JSON dans Golang à l'aide de la bibliothèque standard. Nous apprendrons comment lire les fichiers JSON, comment analyser les données JSON, comment modifier les fichiers JSON dans Golang et réécrire les données modifiées dans le fichier.

Lecture des fichiers JSON

Il est très facile de lire des fichiers JSON en utilisant la bibliothèque standard de Golang. Il suffit d'importer les packagesencoding/jsonetio/ioutil, d'utiliser la fonctionioutil.ReadFilepour lire le fichier JSON, puis passjson La fonction .Unmarshalanalyse le contenu du fichier au format JSON.encoding/jsonio/ioutil包,使用ioutil.ReadFile函数读取JSON文件,然后通过json.Unmarshal函数将文件内容解析为JSON格式。

例如,我们有一个名为data.json的JSON文件,其内容如下:

{ "name": "Jerry", "age": 25, "hobbies": ["reading", "running", "swimming"], "address": { "city": "New York", "state": "NY", "zip": "12345" } }
Copier après la connexion

我们可以使用下面的代码读取它:

package main import ( "fmt" "encoding/json" "io/ioutil" ) type Person struct { Name string `json:"name"` Age int `json:"age"` Hobbies []string `json:"hobbies"` Address Address `json:"address"` } type Address struct { City string `json:"city"` State string `json:"state"` Zip string `json:"zip"` } func main() { file, _ := ioutil.ReadFile("data.json") var person Person json.Unmarshal([]byte(file), &person) fmt.Println(person) }
Copier après la connexion

在上面的代码中,我们定义了一个Person结构体和一个Address结构体,用于存储JSON文件中的数据。然后通过ioutil.ReadFile函数读取文件,并用json.Unmarshal函数解析JSON数据。最后我们打印到控制台输出。

JSON文件中的字段会自动地映射到对应结构体的字段上,此处我们用到了Go语言结构体的标签,来匹配JSON数据中的字段。例如,Name字段在JSON中的键名是name,所以我们在结构体中给Name字段加上了标签json:"name"

解析JSON数据

在上一步中,我们已经成功地将JSON文件解析为了一个Go语言结构体对象。但是,在我们修改之前,我们需要了解一下如何从结构体对象中获取和修改数据。

在Golang中,我们使用反射来操作结构体。反射是一种能够在运行时动态地获取程序类型信息和变量值的机制。我们通过反射来获取结构体的字段信息,并修改结构体的字段值。

下面的代码展示了如何使用反射获取Person结构体中的Name字段的值并输出:

package main import ( "fmt" "reflect" ) type Person struct { Name string `json:"name"` } func main() { person := Person{ Name: "Jerry", } value := reflect.ValueOf(person) fmt.Println(value.FieldByName("Name").String()) }
Copier après la connexion

在上面的代码中,我们使用了反射包中的ValueOf函数来获取Person结构体对象的值,并使用FieldByName函数获取Name字段的值。

修改JSON数据

现在我们已经知道了如何读取JSON文件和解析JSON数据,接下来我们将了解如何在Golang中修改JSON数据并将其重新写入JSON文件。

假设我们需要将Name字段的值从Jerry修改为Tom,我们可以像下面这样修改JSON数据:

package main import ( "encoding/json" "fmt" "io/ioutil" ) type Person struct { Name string `json:"name"` Age int `json:"age"` Hobbies []string `json:"hobbies"` Address Address `json:"address"` } type Address struct { City string `json:"city"` State string `json:"state"` Zip string `json:"zip"` } func main() { file, _ := ioutil.ReadFile("data.json") var person Person json.Unmarshal([]byte(file), &person) person.Name = "Tom" newData, _ := json.Marshal(person) ioutil.WriteFile("data.json", newData, 0644) fmt.Println(string(newData)) }
Copier après la connexion

在上面的代码中,我们首先读取了名为data.json的JSON文件,并使用json.Unmarshal函数将文件内容解析到一个Person结构体变量中去。然后我们修改Name字段的值,将其从Jerry修改为Tom。接着我们使用json.Marshal函数将结构体对象转为JSON字符串,并使用ioutil.WriteFile

Par exemple, nous avons un fichier JSON appelé data.jsonavec le contenu suivant :

rrreee

Nous pouvons le lire en utilisant le code suivant :

rrreee

Dans le code ci-dessus, nous A Personneet une structure Adressesont définies pour stocker les données dans des fichiers JSON. Lisez ensuite le fichier via la fonction ioutil.ReadFileet analysez les données JSON à l'aide de la fonction json.Unmarshal. Enfin, nous imprimons la sortie sur la console. Les champs du fichier JSON seront automatiquement mappés aux champs de la structure correspondante. Ici, nous utilisons les balises de la structure du langage Go pour faire correspondre les champs des données JSON. Par exemple, le nom de clé du champ Nameen JSON est name, nous ajoutons donc l'étiquette au champ Namedans le structure.json:"nom". Analyser les données JSONDans l'étape précédente, nous avons réussi à analyser le fichier JSON dans un objet de structure de langage Go. Cependant, avant de le modifier, nous devons comprendre comment obtenir et modifier les données de l'objet structure. À Golang, nous utilisons la réflexion pour faire fonctionner les structures. La réflexion est un mécanisme qui peut obtenir dynamiquement des informations sur le type de programme et des valeurs de variables au moment de l'exécution. Nous obtenons les informations de champ de la structure par réflexion et modifions les valeurs de champ de la structure. Le code suivant montre comment utiliser la réflexion pour obtenir la valeur du champ Namedans la structure Personet la sortir : rrreeeDans le code ci-dessus, nous utilisons réflexion Utilisez la fonction ValueOfdans le package pour obtenir la valeur de l'objet de structure Personet utilisez la fonction FieldByNamepour obtenir la valeur de Valeur du champ Nom. Modifier les données JSONMaintenant que nous savons comment lire les fichiers JSON et analyser les données JSON, nous apprendrons ensuite comment modifier les données JSON dans Golang et les réécrire dans un fichier JSON. Supposons que nous devions changer la valeur du champ Namede Jerryà Tom, nous pouvons modifier les données JSON comme suit : rrreee Dans le code ci-dessus, nous lisons d'abord le fichier JSON nommé data.jsonet utilisons la fonction json.Unmarshalpour analyser le contenu du fichier en une Person<.> variable de structure. Ensuite, nous modifions la valeur du champ Namede Jerryà Tom. Ensuite, nous utilisons la fonction json.Marshalpour convertir l'objet de structure en chaîne JSON, et utilisons la fonction ioutil.WriteFilepour réécrire les données JSON modifiées dans le fichier d'origine. . RésuméDans cet article, nous avons présenté comment manipuler les fichiers JSON dans Golang. Nous avons appris comment lire un fichier JSON, comment analyser les données JSON et comment modifier les données JSON et les réécrire dans le fichier. Golang est très pratique pour traiter les fichiers JSON. Si vous n'êtes pas très familier avec Golang, il est recommandé de pratiquer davantage. La maîtrise de Golang peut grandement améliorer vos compétences et votre expérience en programmation.

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!

source:php.cn
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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!