Hallo,
ich stelle euch heute JavaScript Object Notation, kurz JSON vor und
erkläre euch, wie ihr Daten in JSON speichert und auch wieder laden
könnt.
Was ist JSON?
JavaScript Object Notation, kurz JSON ist ein kompaktes Datenformat,
dass für Mensch und Maschine lesbar ist. Jede gültige JSON-Datei muss
dem JavaScript-Schema entsprechen.
Es gibt für jede hohe Programmiersprache einen JSON-Parser und manche
Entwickler programmieren für manche sogar Bibiotheken.
Wir werden uns hier den Visual Basic-Parser für JSON anschauen.
Wie wird der JSON-Parser importiert?
Der JSON-Parser für Visual Basic liegt im Namespace
Man muss erst auf Projekt -> Verweis hinzufügen gehen
und nach System.Runtime.Serialization suchen, um den
Namespace zu importieren.
Die Klasse, die den JSON-Parser implementiert, heißt:
und daraus folgt, dass man wie folgt importiert:
Eine eigene Klasse erstellen
Wenn man Daten mit JSON speichern oder laden will,
dann muss man eine eigene Klasse erstellen, z.B die
Klasse Benutzer.
Diese muss den Namespace
importiert haben und muss das Attribut DataContract besitzen,
dann schaut das Grundgerüst schon mal so aus:
Wenn das Grundgerüst fertig ist, müssen die
Variablen deklariert werden:
Diese kann der Parser nicht sehen, da sie als Private
deklariert wurden.
Darum müssen noch die entsprechenden Propertys
gemacht werden:
Wer nicht weiß, was es sich mit dem
hat, erkläre ich euch jetzt:
sind beides Attribute, die dem Parser verständlich machen, dass wenn eine
Klasse mit DataContract spezifiziert wird, dass das ein Objekt ist, dass er
verarbeiten soll. Das gleiche ist, wenn man eine Property o. ä. als DataMember
spezifiziert, dann weiß der Parser, dass es sich um einen Member der Klasse
Benutzer handelt.
Wie speichert und ladet man die Daten?
Das ermöglicht uns der DataContractJsonSerializer, der
uns dann unsere List(Of Benutzer) ins JSON-Format speichert
und auch aus der JSON-Datei die List erstellen kann.
Wir werden jetzt in einer anderen Klasse, in meinem Fall frmJson, eine Sub
Speichern und eine Funktion Laden erstellen und den Namespaces
Bei der Sub Speichern wird ein FileStream erstellt und mit dem
JsonSerializer von der List(Of Benutzer) ins JSON-Format umgewandelt
und gespeichert.
Bei der Funktion Laden wird auch ein FileStream erstellt und mit dem
JSON-Parser ausgelesen und in den Typ List(Of Benutzer) umgewandelt.
Benutzung der Sub und Funktion
Die Sub Speichern kann man so benutzen:
Als erstes erstellt man eine List(Of Benutzer) und füllt diese mit Inhalt und
ruft die Sub Speichern mit 'list' als Parameter auf.
Die Funktion Laden() kann man wie folgt benutzen:
Man erstellt eine List(Of Benutzer) und der Inhalt
der List ist dann der Inhalt der JSON-Datei.
Schlusswort:
Ich hoffe, es hat euch gefallen und
freue mich, wenn jemand etwas postet,
wenn etwas nicht funktioniert.
Freue mich auf Antworten.
MFG
Alex-Digital
ich stelle euch heute JavaScript Object Notation, kurz JSON vor und
erkläre euch, wie ihr Daten in JSON speichert und auch wieder laden
könnt.
Was ist JSON?
JavaScript Object Notation, kurz JSON ist ein kompaktes Datenformat,
dass für Mensch und Maschine lesbar ist. Jede gültige JSON-Datei muss
dem JavaScript-Schema entsprechen.
Es gibt für jede hohe Programmiersprache einen JSON-Parser und manche
Entwickler programmieren für manche sogar Bibiotheken.
Wir werden uns hier den Visual Basic-Parser für JSON anschauen.
Wie wird der JSON-Parser importiert?
Der JSON-Parser für Visual Basic liegt im Namespace
System.Runtime.Serialization
.Man muss erst auf Projekt -> Verweis hinzufügen gehen
und nach System.Runtime.Serialization suchen, um den
Namespace zu importieren.
Die Klasse, die den JSON-Parser implementiert, heißt:
System.Runtime.Serialization.Json
und daraus folgt, dass man wie folgt importiert:
Eine eigene Klasse erstellen
Wenn man Daten mit JSON speichern oder laden will,
dann muss man eine eigene Klasse erstellen, z.B die
Klasse Benutzer.
Diese muss den Namespace
System.Runtime.Serialization
importiert haben und muss das Attribut DataContract besitzen,
dann schaut das Grundgerüst schon mal so aus:
Wenn das Grundgerüst fertig ist, müssen die
Variablen deklariert werden:
Diese kann der Parser nicht sehen, da sie als Private
deklariert wurden.
Darum müssen noch die entsprechenden Propertys
gemacht werden:
VB.NET-Quellcode
- <DataMember()> _
- Public Property Benutzername As String
- Get
- Return _benutzername 'Benutzername wird zurückgegeben
- End Get
- Set(ByVal value As String)
- _benutzername = value 'Variable wird verändert
- End Set
- End Property
- <DataMember()> _
- Public Property Beiträge As Integer
- Get
- Return _beitraege 'Anzahl der Beiträge werden zurückgegeben
- End Get
- Set(ByVal value As String)
- _beitraege = value 'Variable wird verändert
- End Set
- End Property
- <DataMember()> _
- Public Property Signatur As String
- Get
- Return _signatur 'Signatur wird zurückgegeben
- End Get
- Set(ByVal value As String)
- _signatur = value 'Variable wird verändert
- End Set
- End Property
Wer nicht weiß, was es sich mit dem
<DataMember()> _
auf sichhat, erkläre ich euch jetzt:
<DataMember()> _
und sowohl auch <DataContract()> _
sind beides Attribute, die dem Parser verständlich machen, dass wenn eine
Klasse mit DataContract spezifiziert wird, dass das ein Objekt ist, dass er
verarbeiten soll. Das gleiche ist, wenn man eine Property o. ä. als DataMember
spezifiziert, dann weiß der Parser, dass es sich um einen Member der Klasse
Benutzer handelt.
Wie speichert und ladet man die Daten?
Das ermöglicht uns der DataContractJsonSerializer, der
uns dann unsere List(Of Benutzer) ins JSON-Format speichert
und auch aus der JSON-Datei die List erstellen kann.
Wir werden jetzt in einer anderen Klasse, in meinem Fall frmJson, eine Sub
Speichern und eine Funktion Laden erstellen und den Namespaces
System.Runtime.Serialization.Json
und System.IO
importieren.Bei der Sub Speichern wird ein FileStream erstellt und mit dem
JsonSerializer von der List(Of Benutzer) ins JSON-Format umgewandelt
und gespeichert.
Bei der Funktion Laden wird auch ein FileStream erstellt und mit dem
JSON-Parser ausgelesen und in den Typ List(Of Benutzer) umgewandelt.
VB.NET-Quellcode
- Public Function Laden() As List(Of Benutzer)
- Dim list As New List(Of Benutzer)
- Using fs As New FileStream("Benutzer.json", FileMode.OpenOrCreate, FileAccess.Write)
- Dim jsonparser As New DataContractJsonSerializer(GetType(Benutzer))
- list = CType(jsonparser.ReadObject(fs), List(Of Benutzer))
- End Using
- Return list
- End Function
Benutzung der Sub und Funktion
Die Sub Speichern kann man so benutzen:
VB.NET-Quellcode
- Dim list As New List(Of Benutzer)
- list.Add(New Benutzer With {.Beiträge = 100, .Benutzername = "User1", .Signatur = "MFG User1."})
- list.Add(New Benutzer With {.Beiträge = 200, .Benutzername = "User2", .Signatur = "MFG User2."})
- list.Add(New Benutzer With {.Beiträge = 300, .Benutzername = "User3", .Signatur = "MFG User3."})
- Speichern(list)
Als erstes erstellt man eine List(Of Benutzer) und füllt diese mit Inhalt und
ruft die Sub Speichern mit 'list' als Parameter auf.
Die Funktion Laden() kann man wie folgt benutzen:
Man erstellt eine List(Of Benutzer) und der Inhalt
der List ist dann der Inhalt der JSON-Datei.
Schlusswort:
Ich hoffe, es hat euch gefallen und
freue mich, wenn jemand etwas postet,
wenn etwas nicht funktioniert.
Freue mich auf Antworten.
MFG
Alex-Digital
~ Alex-Digital :D
if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close();
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Alex-Digital“ ()