Einführung

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

Schreibe einen Kommentar

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