JSON-Datei mit Go einlesen

Das JSON-Format wird ganz gerne verwendet, um Daten oder Einstellungen zu übertragen bzw. zu speichern. Daher stellt sich häufig die Anforderung, JSON-Dateien einzulesen. Dieser Kurzbeitrag zeigt den notwendigen Sourcecode zum Einlesen von JSON-Dateien und dem Mapping auf einen Go Typen.

Gegeben ist eine JSON-Datei mit Einstellungen für eine Anwendung:

{
    "connectionString": "der connection string im detail"
}

Zur Abbildung der Daten im JSON-Format wird ein Type namens Settings erstellt. Dabei ist zu beachten, dass ein JSON-Mapping angegeben werden kann.

type Settings struct {
    DbConnectionString string `json:"connectionString"`
}

Für das Einlesen der Datei wird das Package os benötigt. Für das Serialisieren der JSON-Daten das Package json. Der Vorgang wird in der Funktion ReadSettings durchgeführt, wie nachfolgend zu sehen:

package samplelib

import (
    "encoding/json"
    "os"
)

type Settings struct {
    DbConnectionString string `json:"connectionString"`
}

func ReadSettings(fileName string)  (settings *Settings, err error) {
    file, _ := os.Open(fileName)
    settings = new(Settings)
    err = json.NewDecoder(file).Decode(settings)
    return
}

Nach einem Import kann dies wie folgt aufgerufen werden:

var settings, err = samplelib.ReadSettings("settings.json")

if err != nil {
    fmt.Println("Error while reading configuration:", err.Error)
} else {
    fmt.Println("connection-string:" + settings.DbConnectionString)
}

Für weitere, tiefergehendere Informationen kann ich JSON and Go – The Go Blog empfehlen.

Veröffentlicht von Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Cookie-Einstellungen
Auf dieser Website werden Cookie verwendet. Diese werden für den Betrieb der Website benötigt oder helfen uns dabei, die Website zu verbessern.
Alle Cookies zulassen
Auswahl speichern
Individuelle Einstellungen
Individuelle Einstellungen
Dies ist eine Übersicht aller Cookies, die auf der Website verwendet werden. Sie haben die Möglichkeit, individuelle Cookie-Einstellungen vorzunehmen. Geben Sie einzelnen Cookies oder ganzen Gruppen Ihre Einwilligung. Essentielle Cookies lassen sich nicht deaktivieren.
Speichern
Abbrechen
Essenziell (1)
Essenzielle Cookies werden für die grundlegende Funktionalität der Website benötigt.
Cookies anzeigen