Heim Backend-Entwicklung Golang Golang JSON-Datei ändern

Golang JSON-Datei ändern

May 10, 2023 pm 06:54 PM

Go-Sprache ist mittlerweile eine sehr beliebte Sprache im Bereich der Internetentwicklung. Sie ist effizient, prägnant und einfach zu verwenden. Sie verfügt außerdem über eine gute Parallelitätsleistung und unterstützt Netzwerkprogrammierung und andere Funktionen. Gleichzeitig besteht eine weitere gute Funktion von Golang darin, dass es JSON-Dateien sehr bequem verarbeiten kann. Wir können JSON-Dateien in der Go-Sprache problemlos lesen und ändern.

In diesem Artikel werde ich vorstellen, wie man die Standardbibliothek zum Ändern von JSON-Dateien in Golang verwendet. Wir lernen, wie man JSON-Dateien liest, wie man JSON-Daten analysiert, wie man JSON-Dateien in Golang ändert und wie man die geänderten Daten zurück in die Datei schreibt.

Lesen von JSON-Dateien

Das Lesen von JSON-Dateien ist mithilfe der Standardbibliothek in Golang sehr einfach zu implementieren. Wir müssen nur die Pakete encoding/json und io/ioutil importieren, die Funktion ioutil.ReadFile verwenden, um die JSON-Datei zu lesen, und dann pass json Die Funktion .Unmarshal analysiert den Dateiinhalt im JSON-Format. 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"
    }
}
Nach dem Login kopieren

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

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)
}
Nach dem Login kopieren

在上面的代码中,我们定义了一个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())
}
Nach dem Login kopieren

在上面的代码中,我们使用了反射包中的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))
}
Nach dem Login kopieren

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

Zum Beispiel haben wir eine JSON-Datei namens data.json mit folgendem Inhalt:

rrreee

Wir können sie mit dem folgenden Code lesen :

rrreee

Im obigen Code definieren wir eine Person-Struktur und eine Address-Struktur zum Speichern von JSON-Dateidaten. Lesen Sie dann die Datei mit der Funktion ioutil.ReadFile und analysieren Sie die JSON-Daten mit der Funktion json.Unmarshal. Abschließend drucken wir die Ausgabe auf der Konsole aus. #🎜🎜##🎜🎜#Die Felder in der JSON-Datei werden automatisch den Feldern der entsprechenden Struktur zugeordnet. Hier verwenden wir die Tags der Go-Sprachstruktur, um die Felder in den JSON-Daten abzugleichen. Beispielsweise lautet der Schlüsselname des Felds Name in JSON name, daher fügen wir die Bezeichnung zum Feld <code>Name im hinzu Struktur. json:"name". #🎜🎜##🎜🎜#JSON-Daten analysieren#🎜🎜##🎜🎜#Im vorherigen Schritt haben wir die JSON-Datei erfolgreich in ein Go-Sprachstrukturobjekt analysiert. Bevor wir es jedoch ändern, müssen wir verstehen, wie wir Daten aus dem Strukturobjekt abrufen und ändern. #🎜🎜##🎜🎜#In Golang nutzen wir Reflexion, um Strukturen zu bedienen. Reflection ist ein Mechanismus, der zur Laufzeit dynamisch Programmtypinformationen und Variablenwerte abrufen kann. Durch Reflexion erhalten wir die Feldinformationen der Struktur und modifizieren die Feldwerte der Struktur. #🎜🎜##🎜🎜#Der folgende Code zeigt, wie Reflektion verwendet wird, um den Wert des Felds Name in der Struktur Person abzurufen und auszugeben: #🎜🎜# rrreee#🎜 🎜#Im obigen Code verwenden wir die Funktion ValueOf im Reflexionspaket, um den Wert des Strukturobjekts Person zu erhalten, und verwenden FieldByName Die Funktion ruft den Wert des Feldes <code>Name ab. #🎜🎜##🎜🎜#JSON-Daten ändern#🎜🎜##🎜🎜#Da wir nun wissen, wie man JSON-Dateien liest und JSON-Daten analysiert, lernen wir als Nächstes, wie man JSON-Daten in Golang ändert und neu in JSON schreibt Datei. #🎜🎜##🎜🎜#Angenommen, wir müssen den Wert des Felds Name von Jerry in Tom ändern, dann können wir den JSON ändern wie folgt Daten: #🎜🎜#rrreee#🎜🎜#Im obigen Code lesen wir zuerst die JSON-Datei mit dem Namen data.json und verwenden json.Unmarshal Die Funktion wird analysiert den Dateiinhalt in eine Strukturvariable Person. Dann ändern wir den Wert des Feldes Name von Jerry in Tom. Dann verwenden wir die Funktion json.Marshal, um das Strukturobjekt in einen JSON-String zu konvertieren, und verwenden die Funktion ioutil.WriteFile, um die geänderten JSON-Daten zurück in die Originaldatei zu schreiben . #🎜🎜##🎜🎜#Zusammenfassung#🎜🎜##🎜🎜#In diesem Artikel haben wir vorgestellt, wie man JSON-Dateien in Golang manipuliert. Wir haben gelernt, wie man eine JSON-Datei liest, wie man die JSON-Daten analysiert und wie man die JSON-Daten ändert und sie zurück in die Datei schreibt. Golang ist sehr praktisch für die Verarbeitung von JSON-Dateien. Wenn Sie mit Golang nicht sehr vertraut sind, empfiehlt es sich, Ihre Programmierkenntnisse und -erfahrungen erheblich zu verbessern. #🎜🎜#

Das obige ist der detaillierte Inhalt vonGolang JSON-Datei ändern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Schwachstellen von Debian Openensl Was sind die Schwachstellen von Debian Openensl Apr 02, 2025 am 07:30 AM

OpenSSL bietet als Open -Source -Bibliothek, die in der sicheren Kommunikation weit verbreitet sind, Verschlüsselungsalgorithmen, Tasten und Zertifikatverwaltungsfunktionen. In seiner historischen Version sind jedoch einige Sicherheitslücken bekannt, von denen einige äußerst schädlich sind. Dieser Artikel konzentriert sich auf gemeinsame Schwachstellen und Antwortmaßnahmen für OpenSSL in Debian -Systemen. DebianopensL Bekannte Schwachstellen: OpenSSL hat mehrere schwerwiegende Schwachstellen erlebt, wie z. Ein Angreifer kann diese Sicherheitsanfälligkeit für nicht autorisierte Lesen sensibler Informationen auf dem Server verwenden, einschließlich Verschlüsselungsschlüssel usw.

Wie verwenden Sie das PPROF -Tool, um die Go -Leistung zu analysieren? Wie verwenden Sie das PPROF -Tool, um die Go -Leistung zu analysieren? Mar 21, 2025 pm 06:37 PM

In dem Artikel wird erläutert, wie das PPROF -Tool zur Analyse der GO -Leistung verwendet wird, einschließlich der Aktivierung des Profils, des Sammelns von Daten und der Identifizierung gängiger Engpässe wie CPU- und Speicherprobleme.Character Count: 159

Wie schreibt man Unit -Tests in Go? Wie schreibt man Unit -Tests in Go? Mar 21, 2025 pm 06:34 PM

In dem Artikel werden Schreiben von Unit -Tests in GO erörtert, die Best Practices, Spottechniken und Tools für ein effizientes Testmanagement abdecken.

Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Apr 02, 2025 pm 02:06 PM

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Was ist der Befehl go fmt und warum ist es wichtig? Was ist der Befehl go fmt und warum ist es wichtig? Mar 20, 2025 pm 04:21 PM

In dem Artikel wird der Befehl go fMT in Go -Programmierung erörtert, in dem Code formatiert werden, um offizielle Richtlinien für den Stil einzuhalten. Es zeigt die Bedeutung von GO FMT für die Aufrechterhaltung der Debatten mit Codekonsistenz, Lesbarkeit und Reduzierung von Stildebatten. Best Practices fo

PostgreSQL -Überwachungsmethode unter Debian PostgreSQL -Überwachungsmethode unter Debian Apr 02, 2025 am 07:27 AM

In diesem Artikel werden eine Vielzahl von Methoden und Tools eingeführt, um PostgreSQL -Datenbanken im Debian -System zu überwachen, um die Datenbankleistung vollständig zu erfassen. 1. verwenden Sie PostgreSQL, um die Überwachungsansicht zu erstellen. PostgreSQL selbst bietet mehrere Ansichten für die Überwachung von Datenbankaktivitäten: PG_STAT_ACTIVITY: Zeigt Datenbankaktivitäten in Echtzeit an, einschließlich Verbindungen, Abfragen, Transaktionen und anderen Informationen. PG_STAT_REPLIKATION: Monitore Replikationsstatus, insbesondere für Stream -Replikationscluster. PG_STAT_DATABASE: Bietet Datenbankstatistiken wie Datenbankgröße, Transaktionsausschüsse/Rollback -Zeiten und andere Schlüsselindikatoren. 2. Verwenden Sie das Log -Analyse -Tool PGBADG

Ist es vielversprechender, Java oder Golang von Front-End zu Back-End-Entwicklung zu verwandeln? Ist es vielversprechender, Java oder Golang von Front-End zu Back-End-Entwicklung zu verwandeln? Apr 02, 2025 am 09:12 AM

Backend Learning Path: Die Erkundungsreise von Front-End zu Back-End als Back-End-Anfänger, der sich von der Front-End-Entwicklung verwandelt, Sie haben bereits die Grundlage von Nodejs, ...

See all articles