N238 Simple JSON Serialisering og Deserialisering
Du skal oprette en konsolapplikation i C#, der arbejder med JSON serialisering og deserialisering. Applikationen skal have en klasse Person
med egenskaberne Navn
(string) og Alder
(int). Applikationen skal tillade brugeren at indtaste en persons data og gemme den i en JSON-fil. Der skal også være en mulighed for at læse og vise personens data fra denne fil. Der skal kun bruges én fast fil (f.eks. persondata.json
) til at gemme og hente persondata.
Applikationen skal have en simpel konsolmenu med følgende muligheder:
- Tilføj ny person
- Vis person
- Afslut
Brugeren skal kunne vælge en handling ved at indtaste et tal, og applikationen skal reagere i overensstemmelse hermed.
Eksempel på Brug
Når applikationen kører, præsenteres brugeren for følgende menu:
Brugeren indtaster 1
for at tilføje en ny person, og applikationen beder om navn og alder. Efter at have indtastet disse oplysninger, gemmes personens data i persondata.json
. Hvis brugeren derefter vælger 2
, vises den gemte persons data i konsollen.
Klik for at se et forslag til en løsning
using System;
using System.Text.Json;
using System.IO;
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("Vælg en handling:\n1. Tilføj ny person\n2. Vis person\n3. Afslut");
string valg = Console.ReadLine();
switch (valg)
{
case "1":
TilføjPerson();
break;
case "2":
VisPerson();
break;
default:
return;
}
}
}
static void TilføjPerson()
{
Console.Write("Indtast navn: ");
string navn = Console.ReadLine();
Console.Write("Indtast alder: ");
int alder = int.Parse(Console.ReadLine());
var person = new Person { Navn = navn, Alder = alder };
string jsonString = JsonSerializer.Serialize(person);
File.WriteAllText("persondata.json", jsonString);
Console.WriteLine("Person gemt.");
}
static void VisPerson()
{
try
{
string jsonString = File.ReadAllText("persondata.json");
var person = JsonSerializer.Deserialize<Person>(jsonString);
Console.WriteLine($"Navn: {person.Navn}, Alder: {person.Alder}");
}
catch (FileNotFoundException)
{
Console.WriteLine("Ingen gemt person fundet.");
}
}
}
class Person
{
public string Navn { get; set; }
public int Alder { get; set; }
}