1. Einführung in Newtonsoft.Json
Newtonsoft.Json (häufig Json.NET genannt) ist eine Open‑Source‑Bibliothek für JSON‑Serialisierung und‑Deserialisierung im .NET‑Ökosystem
- Erste Version Json.NET 1.0.1 erschien 2006, aktuelle Hauptversionen liegen bei 10+
- Ursprünglich für .NET 2.0 entwickelt, unterstützt nahezu alle .NET‑Frameworks (Framework/.NET Core/.NET 5+)
- Assembly:
Newtonsoft.Json.dll, Installation über NuGet - Quellcode wurde ursprünglich auf CodePlex gehostet, heute auf GitHub; weit verbreitet in Unternehmensprojekten
2. Was ist JSON
JSON(JavaScript Object Notation)
- Leichtes, sprachunabhängiges Textformat für Datenaustausch, nicht nur für JavaScript
- Kernstruktur: Schlüssel‑Wert‑Paar
key:value;Verschachtelte Objekte{}und Arrays[]werden unterstützt
{"webname":"FoxDevelop","website":"foxdevelop.com","age":4,"students":[{"name":"tom"},{"name":"bill"}]}Code-Sprache: C# (cs)
II. Entity‑Klasse definieren (passend zur JSON‑Struktur)
Person.cs (Student‑Objekt)
namespace NewtonsoftDemo
{
public class Person
{
public string name { set; get; }
}
}Code-Sprache: C# (cs)
WebInfo.cs (Wurzel‑Objekt)
namespace NewtonsoftDemo
{
public class WebInfo
{
public string webname { set; get; }
public string website { set; get; }
public int age { set; get; }
public Person[] students { set; get; }
}
}Code-Sprache: C# (cs)
Beispiel‑Objekt zu JSON serialisieren
protected void Page_Load(object sender, EventArgs e)
{
// 1. Entity‑Objekt erstellen und Werte zuweisen
WebInfo webInfo = new WebInfo();
webInfo.age = 4;
webInfo.webname = "FoxDevelop";
webInfo.website = "foxdevelop.com";
webInfo.students = new Person[]
{
new Person { name = "TOM" },
new Person { name = "JACK" }
};
// 2. Newtonsoft.Json Low‑Level‑Code: Serialisierung per JsonWriter
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);
new JsonSerializer().Serialize(writer, webInfo);
string json = sw.GetStringBuilder().ToString();
}Code-Sprache: C# (cs)
Einfache Schreibweise für den Alltag
Newtonsoft.Json stellt statische Hilfsmethoden zur Verfügung, sodass man JsonWriter nicht manuell erzeugen muss:
// Einzeilige Serialisierung, im Entwicklungsalltag sehr gebräuchlich
string json = JsonConvert.SerializeObject(webInfo);Code-Sprache: C# (cs)
Ausgabe‑JSON‑Ergebnis
{
"webname": "FoxDevelop",
"website": "foxdevelop.com",
"age": "4",
"students": [
{"name":"TOM"},
{"name":"JACK"}
]
}Code-Sprache: C# (cs)
Weitere Hinweise
- System.Text.Json:von Microsoft integrierte JSON‑Bibliothek ab .NET Core 3.0; für ältere .NET‑Framework‑Projekte wird Newtonsoft.Json nach wie vor häufig verwendet
- Eigenschaften: Eigenschafts‑Aliase, Feld‑Ignorierung, Datumsformatierung, Behandlung zirkulärer Verweise und weitere erweiterte Funktionen
Einführung